io.insourcia/insourcia

insourcia

Search French companies: financials, directors, ownership, M&A and insolvency events.

1.0.0
Version
remote
Transport
19
Tools

Security review

Review passed

Reviewed 20h ago.

  • tools: 19 tools scanned
  • metadata: scanned

No findings.

Tools (19)

  • search_companies

    Recherche d'entreprises francaises par nom, SIREN/SIRET, activite ou criteres (geographie, secteur, effectif, financier, dirigeants). Pour une societe citee par son nom : trouver le SIREN ici, puis get_company ou get_financials. Effectif et statut departagent les homonymes. - Le siren est dans chaque resultat : ne pas les repasser par resolve_companies (fiches sans identifiant). - Valeurs : un chiffre (ca, ebitda, resultat_net, effectif_moyen, signaux publics...) n'est retourne que s'il figure dans include_fields, meme quand il sert de filtre. 3 champs par recherche (free), 10 (pro). Un nom inconnu est liste dans include_fields_unknown : le corriger plutot que d'appeler get_company ligne par ligne. get_financials sert l'historique multi-annees. - Filtres simples au premier niveau, les deux bornes cote a cote (effectif_min et effectif_max ; idem ca, resultat_net, tresorerie, cagr_ca, date_creation, age_dirigeant). Criteres avances (ratios, CAGR, bilan, delais, signaux publics, fonds, C

  • resolve_companies

    Rapprochement EN LOT de fiches mal identifiees (CRM, tableur, export CSV) vers leur SIREN. A utiliser pour une LISTE de societes a identifier ("retrouve les SIREN de ces 200 clients"). Pour UNE societe cherchee par son nom, search_companies, qui rend des resultats classes ; celui-ci rend une decision, et refuse de trancher quand il n'est pas sur. Chaque fiche revient avec un status : - resolved : SIREN certain. - review : plusieurs candidats plausibles ou nom trop generique ; les candidats sont retournes et le choix revient a l'utilisateur. - no_match : aucune correspondance. reason explique un review : ambiguous_candidates, weak_name_overlap, shared_domain (site partage par un reseau ; domain_company_count dit combien de societes, fournir un nom ou un code postal), missing_name, invalid_domain, domain_no_match, lookup_failed (panne a rejouer, PAS une absence de correspondance). Conseils : domain (domaine ou URL) resout seul quand il designe une seule societe. Le code postal double

  • get_company

    Fiche complete d'une entreprise francaise identifiee par son SIREN. Pour plusieurs entreprises, le parametre sirens sert jusqu'a 10 fiches en une requete, au lieu d'un appel par societe. COUT : 1 appel de quota par societe, en lot comme a l'unite. Pour comparer beaucoup de societes, search_companies rend les memes champs en include_fields (dont description_activite et site_internet), 20 societes par appel. Contenu : 1. Identite - forme juridique, dates de creation et d'immatriculation, date_cloture_exercice, capital, siege complet, activite (NAF, objet_social, description), effectif, LEI si present ; successeur si radiee. 2. Financier - date_cloture et type_bilan (K consolide, C social, S simplifie : un CA K n'est pas comparable a un CA C), CA, croissance, resultat net, marges, EBITDA, dette nette, effectif moyen. 3. Contact - site web et page LinkedIn de la societe. 4. Gouvernance - dirigeants principaux. 5. IFRS - agregats consolides des cotees. 6. Signaux - cotation, procedures co

  • get_financials

    Historique financier detaille d'une entreprise sur plusieurs exercices. COUT : 1 appel de quota par societe, reponse de ~10 a 45 Kio selon detail et years. Pour le seul dernier exercice (ca, ebitda, resultat_exploitation, resultat_net, effectif_moyen), search_companies le rend en include_fields, 20 societes par appel. Pour plusieurs entreprises, le parametre sirens sert jusqu'a 10 historiques en une requete (3 en detail=full). Le lot part en compact sauf demande explicite, y compris sur Pro, et ne pagine pas. Niveau de detail : - compact (defaut sur free, ~40 champs par exercice) : compte de resultat complet, bilan abrege PCG, ratios (tresorerie, dette nette, BFR, marges, endettement, CAF, delais de paiement), dividendes, effectif moyen. - full (defaut sur Pro, ~140 champs) : tous les postes. Refuse sur free (403). - fields : ajoute quelques champs a compact sans gonfler la reponse, ex fields=["roe","bfr_jours_ca","autonomie_financiere"]. Plus de 130 disponibles : ratios, postes det

  • reveal_director_email

    Revele l'email PROFESSIONNEL d'un dirigeant identifie (apres get_directors). Exige un compte FullEnrich, Dropcontact, Apollo ou Lusha connecte dans les parametres Insourcia (sinon no_payment_source) ; provider dit lequel a servi. COUT : 1 credit de ce compte par email trouve, catch-all compris. Gratuit si rien n'est trouve (sauf Lusha : 1 credit de recherche des que la personne est trouvee, meme sans email), ou si ce dirigeant a deja ete revele (3 mois chez FullEnrich, 15 minutes chez Apollo et Lusha). Offre gratuite : 5 revelations facturees par mois (connected_account_monthly_limit). Autres erreurs : connected_account_key_invalid (a reconnecter), connected_account_out_of_credits. OUTIL UNITAIRE, sans variante par lot : boucler sur une liste consomme des credits et declenche une limite horaire. deliverability_proven=false : domaine catch-all, boite non prouvee. email=null (not_found, rejected_by_verification) : inutile de reessayer. Avec Dropcontact, ou sans profil LinkedIn connu,

  • get_directors

    Detail des dirigeants d'une entreprise avec structure hierarchique. Retourne les dirigeants classes par importance (decisionnaires en premier). Deux types d'entrees : - **PP** (personne physique) : nom, prenom, role, annee de naissance, date_debut_mandat, date_fin_mandat, linkedin_url - **PM** (personne morale) : denomination, SIREN, role, date_debut_mandat, date_fin_mandat, avec un tableau representants[] listant les personnes physiques qui la representent (nom, prenom, role dans la PM, dates de mandat) Inclut les commissaires aux comptes (role="CAC") avec leur date de debut/fin de mandat. Utile pour identifier le mandataire actif vs sortant. linkedin_url est le profil LinkedIn de la personne physique, present uniquement quand un profil a ete apparie avec certitude (nom + prenom + date de naissance). La clef est absente quand aucun profil n'est confirme : c'est le cas courant, pas une anomalie. Reserve au plan pro. Par defaut, seuls les mandataires actifs sont retournes. Utiliser

  • search_directors

    Recherche de personnes (dirigeants) a travers toutes les entreprises francaises, par nom de famille. A la difference de search_companies (qui retourne des ENTREPRISES et accepte dirigeant_nom/dirigeant_prenom comme filtres), search_directors retourne directement des PERSONNES avec leur entreprise de rattachement. Cas d'usage : "toutes les entreprises ou siege un dirigeant nomme DUPONT", cartographie d'un reseau de mandats. Parametres : nom (REQUIS, nom de famille), prenom (optionnel, desambiguise), role (optionnel, ex "President", "Gerant", "Administrateur"). Par defaut seuls les mandats actifs ; include_inactive=true pour inclure les anciens mandats. Reponse : data[] = personnes { nom, prenom, civilite, role, role_description, date_naissance, annee_naissance, lieu_naissance, type_personne, linkedin_url, entreprise { siren, denomination, ville, departement, code_ape } }. linkedin_url n'est present que si un profil a ete apparie avec certitude (plan pro) ; son absence est le cas cour

  • search_director_companies

    Mandats directs d'un dirigeant : toutes les entreprises ou il exerce un mandat direct, le dirigeant etant identifie de facon non ambigue par nom + prenom + date de naissance exacte. C'est le pivot "personne -> entreprises", complement de search_directors (trouver la personne) et get_directors (dirigeants d'une entreprise). Cas d'usage M&A : tracer le perimetre de societes d'un fondateur/dirigeant (holdings, SCI, filiales) sans confondre les homonymes. Parametres TOUS REQUIS : nom, prenom, date_naissance (format YYYY-MM-DD). La date de naissance est obligatoire : c'est elle qui distingue la bonne personne de ses homonymes. L'obtenir au prealable via search_directors ou get_directors (champ date_naissance). Reponse : dirigeant { nom, prenom, date_naissance, annee_naissance } + data[] = entreprises { siren, denomination, role, ville, departement, code_ape, forme_juridique } + pagination { total, returned, limit }. Resultat vide = aucun mandat direct trouve pour cette identite exacte (v

  • search_events

    Recherche unifiee d'evenements d'entreprise (cross-SIREN), basee sur notre index ES. Renvoie des EVENEMENTS individuels (pas des entreprises) : { date, type, siren, denomination, data }. Couvre 8 types : cession (cessions de fonds), procedure (procedures collectives), depot_comptes, augmentation_capital, marche_public, subvention, radiation, creation. Ce n'est PAS le fil de veille : pour les signaux recents des societes suivies (nouveau bilan, score credit, dissolution...), utiliser get_news. Couvre les evenements BODACC (cessions, procedures collectives, radiations, creations) ainsi que les depots de comptes, augmentations de capital, marches publics et subventions derives des scalaires silver. REGLE : preciser au moins un filtre region / departement / ville / code_naf, OU un filtre d'evenement (date_min, date_max, cedant_siren, cessionnaire_siren, prix_min/max, tribunal, procedure_type) — sinon 400. IMPORTANT : passer UN SEUL type quand la question porte sur un type precis. Les f

  • get_events

    Timeline unifiee des evenements d'UNE entreprise (par SIREN). Flux chronologique decroissant qui reunit : - une ligne par annonce BODACC de modification (forme juridique, dirigeants, siege, activite, capital, denomination, dissolution), avec libelle, sous_type et source_url vers l'avis officiel ; - une ligne par depot des comptes (un par exercice) et par immatriculation ; - les cessions (y compris cote cedant d'une vente) et les procedures collectives ; - la radiation, l'augmentation de capital, la creation ; - une ligne par annee de marches publics, les subventions ; - sur 12 mois, les mouvements de dirigeants (dirigeant_entry, dirigeant_exit, dirigeant_change), les changements de note credit (changement_note) et de denomination (changement_denomination), et les transferts de siege et changements d'activite SIRENE (modification_administrative, avec un libelle explicite). Pour plusieurs entreprises, le parametre sirens sert jusqu'a 10 timelines en une requete, 20 evenements par socie

  • get_credit_risk

    Score de risque credit d'UNE entreprise francaise (par SIREN). Retourne le grade de risque (AAA -> D), la probabilite de defaut a 3/6/12 mois (taux du grade, master-scale), la position de la societe dans la fourchette de son grade (bas / milieu / haut) et les facteurs principaux (5 par defaut, jusqu'a 10 avec factors_limit). Chaque facteur porte son sens (aggravant / attenuant), son poids (part de l'ecart au risque moyen, 0 a 1) et la valeur de la societe quand elle est affichable ; other_factors regroupe le reste. Disponible sur tous les plans. Reponses possibles : - entreprise scoree : { scorable:true, risk:{ grade, grade_default_rate, grade_position, factors, other_factors, coverage, as_of, model } } - entreprise non scoree (pas de comptes recents) : { scorable:false, risk:null } - SIREN inconnu : erreur 404. Use case : risque fournisseur, due diligence. Pour scorer un portefeuille, le parametre sirens rend jusqu'a 10 scores en une requete.

  • get_company_graph

    Cartographie des entites autour d'UNE entreprise (par SIREN) : graphe oriente construit sur les mandats RCS/RNE et les liens de groupe. Pour la structure d'un groupe : holdings, filiales, societes soeurs, dirigeants communs. Complementaire de get_directors (mandats d'une societe) et de search_director_companies (mandats directs d'un dirigeant). Reponse : nodes[] (entreprises "co:<siren>", personnes "pp:<nom>|<prenom>|<AAAA-MM>", parents etrangers "co:ext:<slug>") et edges[] orientees : - mandat_pm : societe dirigeante -> societe dirigee - filiale : mere -> filiale (associe unique RNE) - parent_ultime : parent ultime (GLEIF) -> societe - mandat_pp : personne -> societe dirigee A savoir : - Pas de pourcentage de detention. Les commissaires aux comptes sont exclus. - depth=1 : liens directs. depth=2 (defaut) : expansion depuis les parents et societes dirigeantes, jamais depuis les filiales. - Les dirigeants de la racine tirent leurs autres societes (holdings personnelles, SCI, structure

  • create_saved_search

    Creation d'une recherche sauvegardee pour l'utilisateur, visible dans l'app Insourcia (page /news - Veille). Utiliser cet outil quand l'utilisateur veut SAUVEGARDER une recherche pour la suivre dans le temps (veille marche, suivi d'un secteur, pipeline de cibles) - pas pour une recherche ponctuelle (utiliser search_companies). Fonctionnement : - Les filtres acceptes sont les MEMES que search_companies (query texte libre + filtres geographie/secteur/financier/dirigeants + advanced_filters JSON). Au moins un critere est requis. - Idempotent : si une recherche sauvegardee ACTIVE du meme nom existe deja pour l'utilisateur, elle est renvoyee telle quelle (already_exists=true), sans doublon et sans modifier son alerte. - Alerte quotidienne ACTIVE PAR DEFAUT (enable_alert=false pour s'en passer) : elle notifie l'utilisateur (page /news + email) quand de NOUVELLES societes entrent dans les criteres de la recherche. A la creation, une notification initiale recapitule les 90 derniers jours ; e

  • watch_company

    Mise sous surveillance d'une societe : l'ajoute a une liste de veille de l'utilisateur, visible dans l'app Insourcia (page /lists). Utiliser cet outil quand l'utilisateur veut SUIVRE une societe dans le temps (cible d'acquisition, concurrent, client, fournisseur a risque) - pas pour une simple consultation (utiliser get_company). Fonctionnement : - list_name designe la liste cible ; la liste "Surveillance" est utilisee par defaut et creee automatiquement si besoin (idem pour toute liste nommee qui n'existe pas encore). - Idempotent : si la societe est deja dans la liste, l'appel renvoie already_watched=true sans creer de doublon. - Alerte quotidienne ACTIVE PAR DEFAUT quand la liste est creee par cet appel (enable_alert=false pour s'en passer ; sur une liste existante, enable_alert=true l'active) : l'utilisateur est notifie des evenements FUTURS touchant les societes de la liste (annonces BODACC : procedures collectives, cessions... et changements de dirigeants). Pas de replay de l'h

  • unwatch_company

    Retrait d'une societe de la surveillance : l'enleve d'une liste de veille de l'utilisateur (page /lists de l'app Insourcia). Inverse de watch_company. Utiliser cet outil quand l'utilisateur veut ARRETER de suivre une societe ("je ne suis plus interesse par X", "enleve X de ma veille", "nettoie ma liste"). Fonctionnement : - Sans list_name, la societe est retiree de TOUTES les listes de l'utilisateur - c'est le sens naturel de "arrete de surveiller X". Avec list_name, seule cette liste est nettoyee. - Idempotent : si la societe n'est dans aucune liste (ou si la liste nommee n'existe pas), l'appel renvoie removed=false sans erreur. - La liste elle-meme n'est jamais supprimee, meme si elle devient vide. Une alerte active sur la liste reste active pour les autres societes. - Le retrait fonctionne meme pour une societe absente de l'index (radiee, disparue) : ce qui a pu etre ajoute peut toujours etre enleve. list_watched_companies donne le nom exact des listes et les societes qu'elles co

  • list_saved_searches

    Liste des recherches sauvegardees de l'utilisateur (page /news - Veille de l'app Insourcia). Utiliser cet outil : - AVANT create_saved_search, pour verifier qu'une veille equivalente n'existe pas deja et eviter les doublons de nom. - Pour repondre a "quelles veilles ai-je ?" / "quelles sont mes recherches sauvegardees ?". Reponse : { saved_searches: [{ id, name, filters (filtres normalises stockes), result_count (nombre de societes matchant, null si indisponible), alert_enabled (alerte quotidienne nouvelles societes active ou non), url (page /news), created_at }], total }. Les recherches sont triees de la plus recente a la plus ancienne. Liste vide = aucune veille configuree.

  • list_watched_companies

    Liste des societes surveillees par l'utilisateur dans ses listes de veille (page /lists de l'app Insourcia). Utiliser cet outil : - AVANT watch_company, pour verifier si une societe est deja surveillee et connaitre les listes existantes (leur nom exact). - Pour repondre a "quelles societes je surveille ?" / "qu'y a-t-il dans ma liste X ?". list_name (optionnel) restreint a une liste precise (nom exact). Sans list_name, toutes les listes de l'utilisateur sont retournees. Un list_name qui ne matche aucune liste renvoie companies: [] et total: 0 (ce n'est pas une erreur : simplement aucune societe surveillee sous ce nom). Reponse : { companies: [{ siren, company_name, naf_code, region, list_id, list_name, added_at }] (aplaties toutes listes confondues, plus recentes d'abord), lists: [{ id, name, company_count, alert_enabled }], total, url (page /lists) }.

  • get_news

    Veille quotidienne de l'utilisateur : le fil d'actualite de ses societes surveillees, tel qu'il apparait sur la page /news de l'app Insourcia. Utiliser cet outil pour repondre a "quoi de neuf sur ma veille ?", "qu'est-ce qui a bouge sur mes societes ?", "resume-moi ma veille de la semaine", ou avant de rediger un point hebdomadaire. Contenu : les alertes reellement delivrees (email/push) ET l'activite des societes des listes de veille (changements de dirigeants, annonces BODACC : procedures collectives, cessions, radiations..., articles de presse), fusionnees et dedupliquees, les plus recentes d'abord. Couvre toutes les listes de l'utilisateur, tous espaces confondus (source.espace indique lequel). Chaque ligne est HYBRIDE : "label" donne la phrase francaise prete a lire (identique a l'app) et "type"/"before"/"after"/"siren"/"date" donnent les champs structures pour filtrer ou raisonner. "date" est le jour de DETECTION (axe de fraicheur) ; "effective_date", quand present, est la dat

  • mark_news_read

    Marque comme lus des signaux precis de la veille de l'utilisateur (page /news de l'app Insourcia). Utiliser cet outil quand l'utilisateur indique avoir traite des signaux ("ok j'ai vu", "marque-les comme lus"). Fonctionnement : - Prend les "read_key" renvoyees par get_news, telles quelles ; leur format varie selon le type de signal et n'est pas reconstructible. - Idempotent : une cle deja lue est ignoree (comptee dans already_read), sans erreur ni doublon. - Marquage cible uniquement : il n'existe volontairement pas de "tout marquer lu" via l'API, pour ne pas effacer par erreur la file de tri de l'utilisateur. - N'efface rien : la ligne reste visible dans l'app, elle passe simplement de "nouveau" a "lu". - Ne modifie pas la date de derniere visite de l'utilisateur sur /news. Reponse : { marked_read, already_read, unread_remaining, url (page /news) }.