{"openapi":"3.0.3","info":{"title":"Reachable API","version":"1.0.0","description":"Reachable : données publiques et signaux sur les entreprises françaises, à l'usage, pour les agents IA (https://withreachable.com)."},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer"}},"schemas":{}},"paths":{"/v1/companies/count":{"post":{"operationId":"count","summary":"Compter des entreprises (gratuit)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"naf_codes":{"description":"APE en NAF rév. 2, code exact ou préfixe.","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"description":"APE en NAF 2025, code exact ou préfixe.","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"description":"Département du siège.","minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"description":"Commune du siège, code INSEE (ex. 06088 = Nice ; Paris, Lyon, Marseille : arrondissements 75101…), pas le code postal (06000).","minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"description":"Catégorie juridique INSEE, code exact ou préfixe (ex. 57 = SAS).","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"description":"Tranche d'effectifs INSEE (NN, 00, 01, 02…). Exclut les entreprises en diffusion partielle.","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"description":"État administratif. Défaut : tous.","minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"description":"Date de création.","type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"signals":{"description":"Entreprises ayant au moins un signal de ces types sur la période.","type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"estimated":{"type":"boolean","description":"Vrai : count est une estimation (au-delà de 100 000 entreprises), pas un comptage exact."}},"required":["count","estimated"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/companies/search":{"post":{"operationId":"search_companies","summary":"Chercher des entreprises par filtres ou par nom","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"description":"Nom, sigle ou enseigne (tolérant aux fautes, actives d'abord), ou SIREN / SIRET exact. Combinable seulement avec department_codes et status (une valeur chacun).","type":"string","minLength":2,"maxLength":200},"naf_codes":{"description":"APE en NAF rév. 2, code exact ou préfixe.","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"description":"APE en NAF 2025, code exact ou préfixe.","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"description":"Département du siège.","minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"description":"Commune du siège, code INSEE (ex. 06088 = Nice ; Paris, Lyon, Marseille : arrondissements 75101…), pas le code postal (06000).","minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"description":"Catégorie juridique INSEE, code exact ou préfixe (ex. 57 = SAS).","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"description":"Tranche d'effectifs INSEE (NN, 00, 01, 02…). Exclut les entreprises en diffusion partielle.","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"description":"État administratif. Défaut : tous.","minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"description":"Date de création.","type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"signals":{"description":"Entreprises ayant au moins un signal de ces types sur la période.","type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"cursor":{"description":"Curseur opaque renvoyé par page_info.next_cursor.","type":"string","maxLength":500},"max_cost":{"description":"Plafond de coût de la requête, en crédits entiers (ex. 50). Coût estimé supérieur : rien n'est servi ni facturé.","anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"type":"string"},"acronym":{"type":"string"},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"naf_code_2025":{"type":"string"},"headcount_band":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"department_code":{"type":"string"},"postal_code":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/companies/{siren}":{"get":{"operationId":"get_company","summary":"Fiche d'une entreprise","parameters":[{"schema":{"type":"string","pattern":"^(public|labels)(,(public|labels))*$"},"in":"query","name":"blocks","required":false,"description":"Blocs séparés par des virgules (public, labels). Défaut : public."},{"schema":{"type":"string"},"in":"query","name":"max_cost","required":false,"description":"Plafond de coût en crédits entiers (ex. 50)."},{"schema":{"type":"string","pattern":"^\\d{9}$"},"in":"path","name":"siren","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"siren":{"type":"string"},"public":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"type":"string"},"acronym":{"type":"string"},"usual_names":{"type":"array","items":{"type":"string"}},"person_last_name":{"type":"string"},"person_usage_name":{"type":"string"},"person_first_names":{"type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"naf_code_2025":{"type":"string"},"activity":{"type":"object","properties":{"code":{"type":"string","description":"Code APE brut, tel que publié par l'INSEE."},"nomenclature":{"type":"string","description":"Nomenclature INSEE du code, telle quelle : NAFRev1, NAF1993 ou NAP."}},"required":["code","nomenclature"],"additionalProperties":false,"description":"Activité principale dans une nomenclature ancienne (unité ou établissement non recodé en NAF rév. 2). Non convertie : ne se compare pas aux codes `naf_code` ni aux filtres `naf_codes`."},"category":{"type":"string"},"category_year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"headcount_band":{"type":"string"},"headcount_year":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"is_employer":{"type":"boolean"},"is_ess":{"type":"boolean"},"is_mission_company":{"type":"boolean"},"rna_id":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"head_office":{"type":"object","properties":{"siret":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"status":{"type":"string","enum":["active","ceased"]},"address_complement":{"type":"string"},"street_number":{"type":"string"},"street_number_suffix":{"type":"string"},"street_type":{"type":"string"},"street_name":{"type":"string"},"postal_code":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"region_code":{"type":"string"},"foreign_country_code":{"type":"string"},"foreign_city":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"naf_code":{"type":"string"},"naf_code_2025":{"type":"string"},"activity":{"type":"object","properties":{"code":{"type":"string","description":"Code APE brut, tel que publié par l'INSEE."},"nomenclature":{"type":"string","description":"Nomenclature INSEE du code, telle quelle : NAFRev1, NAF1993 ou NAP."}},"required":["code","nomenclature"],"additionalProperties":false,"description":"Activité principale dans une nomenclature ancienne (unité ou établissement non recodé en NAF rév. 2). Non convertie : ne se compare pas aux codes `naf_code` ni aux filtres `naf_codes`."},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siret","status","source","updated_at"],"additionalProperties":false},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"labels":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"label":{"type":"string"},"issuer":{"type":"string"},"domain":{"type":"string"},"siret":{"type":"string"},"valid_from":{"type":"string"},"valid_to":{"type":"string"},"first_seen_at":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["type","first_seen_at","source","updated_at"],"additionalProperties":false}}},"required":["siren"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/signals/search":{"post":{"operationId":"get_signals","summary":"Signaux d'entreprises","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sirens":{"description":"Limiter à ces entreprises.","minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^\\d{9}$"}},"types":{"description":"Types de signaux (ex. contract.awarded).","minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"description":"Date de l'événement.","type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"detected":{"description":"Date d'entrée dans la base (pour un flux incrémental).","type":"object","properties":{"from":{"description":"Date de début incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"description":"Date de fin incluse, AAAA-MM-JJ.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"department_codes":{"description":"Département du siège.","minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"sort":{"default":"occurred_on_desc","type":"string","enum":["occurred_on_desc","detected_at_asc"]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"cursor":{"description":"Curseur opaque renvoyé par page_info.next_cursor.","type":"string","maxLength":500},"max_cost":{"description":"Plafond de coût de la requête, en crédits entiers (ex. 50). Coût estimé supérieur : rien n'est servi ni facturé.","anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"siren":{"type":"string"},"siret":{"type":"string"},"occurred_on":{"type":"string"},"published_at":{"type":"string"},"detected_at":{"type":"string"},"amount":{"type":"string"},"data":{},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["id","type","siren","occurred_on","detected_at","data","source","updated_at"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/estimate":{"post":{"operationId":"estimate","summary":"Estimer le coût d'un appel (gratuit)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string","enum":["search_companies","get_company","get_signals"],"description":"Outil à estimer."},"params":{"type":"object","additionalProperties":{},"description":"Paramètres de l'outil, tels qu'ils seraient envoyés (validés par son schéma)."}},"required":["tool","params"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"tool":{"type":"string","enum":["search_companies","get_company","get_signals"]},"estimated_cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","lines"],"additionalProperties":false},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Nombre d'entreprises qui seraient renvoyées."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Dont entreprises déjà payées il y a moins de 30 jours (gratuites)."},"summary":{"type":"string","description":"Résumé : « 420 entreprise(s), dont 400 déjà payée(s) dans les 30 jours : 20 crédits »."}},"required":["tool","estimated_cost","quantity","already_paid","summary"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/suggestions":{"post":{"operationId":"suggest_improvement","summary":"Signaler une donnée, un champ ou une source qui manque (gratuit)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["missing_field","new_source","bug","other"],"description":"missing_field : champ absent ; new_source : source ou API à ajouter ; bug : donnée fausse ; other."},"title":{"type":"string","minLength":3,"maxLength":120,"description":"Ce qui manque, en quelques mots (ex. « Numéro de téléphone du standard »)."},"need":{"description":"Besoin métier : à quoi servirait la donnée.","type":"string","maxLength":2000},"wanted_column":{"description":"Colonne souhaitée dans la watchlist.","type":"string","maxLength":120},"example_sirens":{"description":"Entreprises sur lesquelles la donnée manque.","maxItems":10,"type":"array","items":{"type":"string","pattern":"^\\d{9}$"}},"would_pay":{"default":false,"description":"Vrai si l'utilisateur paierait des crédits pour cette donnée.","type":"boolean"}},"required":["type","title"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["missing_field","new_source","bug","other"]},"title":{"type":"string"},"status":{"type":"string","enum":["received","reviewing","planned","available","declined"]},"status_note":{"description":"Note publique de l'équipe Reachable sur ce statut.","type":"string"},"similar":{"description":"Autres demandes proches, déjà enregistrées.","type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["missing_field","new_source","bug","other"]},"title":{"type":"string"},"status":{"type":"string","enum":["received","reviewing","planned","available","declined"]},"status_note":{"description":"Note publique de l'équipe Reachable sur ce statut.","type":"string"}},"required":["id","type","title","status"],"additionalProperties":false}},"now_available":{"description":"Demandes soutenues par ce compte devenues disponibles depuis le dernier appel.","type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["missing_field","new_source","bug","other"]},"title":{"type":"string"},"status":{"type":"string","enum":["received","reviewing","planned","available","declined"]},"status_note":{"description":"Note publique de l'équipe Reachable sur ce statut.","type":"string"}},"required":["id","type","title","status"],"additionalProperties":false}}},"required":["id","type","title","status"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/preview":{"post":{"operationId":"preview_watchlist","summary":"Aperçu d'une watchlist (gratuit)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"naf_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"labels":{"minItems":1,"type":"array","items":{"type":"string","enum":["rge","qualiopi","bio"]}},"signals":{"type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false}},"additionalProperties":false,"description":"Requête d'entrée sur la base France : filtres structurés (naf_codes, department_codes, commune_codes, legal_form_codes, headcount_bands, status, created, labels, signals). Au moins un."},"max_rows":{"type":"integer","minimum":1,"maximum":100000,"description":"Plafond de lignes actives."},"columns":{"description":"Colonnes envisagées, en plus de la Fiche (toujours présente).","maxItems":20,"type":"array","items":{"type":"object","properties":{"price_item_id":{"type":"string","maxLength":100,"pattern":"^[a-z][a-z0-9_.-]*$","description":"Source de la colonne : identifiant de la grille de prix (ex. company pour la Fiche)."},"frequency":{"description":"Défaut : fréquence recommandée de la source.","type":"string","enum":["daily","weekly","monthly"]}},"required":["price_item_id"],"additionalProperties":false}},"sample_size":{"default":5,"description":"Entreprises d'exemple renvoyées (5 à 10).","type":"integer","minimum":5,"maximum":10}},"required":["query","max_rows"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"volume":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"volume_estimated":{"type":"boolean","enum":[true]},"rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sample":{"type":"array","items":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"type":"string"},"acronym":{"type":"string"},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"naf_code_2025":{"type":"string"},"headcount_band":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"department_code":{"type":"string"},"postal_code":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"description":"Premières entreprises qui entreraient (ordre d'entrée : SIREN)."},"estimate":{"type":"object","properties":{"volume":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Entreprises actives qui remplissent la requête d'entrée ; sans requête : lignes actives, ou max_rows pour une watchlist envisagée."},"volume_estimated":{"description":"Volume estimé (au-delà de 10 000 entreprises), pas compté.","type":"boolean","enum":[true]},"max_rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Lignes estimées : volume borné au plafond, jamais moins que les lignes actives."},"columns":{"type":"array","items":{"type":"object","properties":{"column_id":{"type":"string"},"price_item_id":{"type":"string"},"label":{"type":"string"},"frequency":{"type":"string","enum":["daily","weekly","monthly"]},"credits_per_company":{"type":"integer","minimum":0,"maximum":9007199254740991},"monthly_credits":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["price_item_id","label","frequency","credits_per_company","monthly_credits"],"additionalProperties":false}},"credits_per_company":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total des colonnes, en crédits par entreprise et par mois."},"monthly_credits":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Crédits par mois pour toute la watchlist : lignes × crédits par entreprise."},"summary":{"type":"string"}},"required":["volume","max_rows","rows","columns","credits_per_company","monthly_credits","summary"],"additionalProperties":false}},"required":["volume","rows","sample","estimate"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/estimate":{"post":{"operationId":"estimate_cost","summary":"Coût mensuel d'une watchlist (gratuit)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"watchlist_id":{"description":"Watchlist existante : ses colonnes et ses lignes. Sinon, max_rows et, pour la base France, query.","type":"string","minLength":1,"maxLength":64},"query":{"type":"object","properties":{"naf_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"labels":{"minItems":1,"type":"array","items":{"type":"string","enum":["rge","qualiopi","bio"]}},"signals":{"type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false}},"additionalProperties":false,"description":"Requête d'entrée sur la base France : filtres structurés (naf_codes, department_codes, commune_codes, legal_form_codes, headcount_bands, status, created, labels, signals). Au moins un."},"max_rows":{"type":"integer","minimum":1,"maximum":100000,"description":"Plafond de lignes actives."},"columns":{"description":"Colonnes envisagées, en plus de la Fiche (toujours présente).","maxItems":20,"type":"array","items":{"type":"object","properties":{"price_item_id":{"type":"string","maxLength":100,"pattern":"^[a-z][a-z0-9_.-]*$","description":"Source de la colonne : identifiant de la grille de prix (ex. company pour la Fiche)."},"frequency":{"description":"Défaut : fréquence recommandée de la source.","type":"string","enum":["daily","weekly","monthly"]}},"required":["price_item_id"],"additionalProperties":false}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"volume":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Entreprises actives qui remplissent la requête d'entrée ; sans requête : lignes actives, ou max_rows pour une watchlist envisagée."},"volume_estimated":{"description":"Volume estimé (au-delà de 10 000 entreprises), pas compté.","type":"boolean","enum":[true]},"max_rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Lignes estimées : volume borné au plafond, jamais moins que les lignes actives."},"columns":{"type":"array","items":{"type":"object","properties":{"column_id":{"type":"string"},"price_item_id":{"type":"string"},"label":{"type":"string"},"frequency":{"type":"string","enum":["daily","weekly","monthly"]},"credits_per_company":{"type":"integer","minimum":0,"maximum":9007199254740991},"monthly_credits":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["price_item_id","label","frequency","credits_per_company","monthly_credits"],"additionalProperties":false}},"credits_per_company":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total des colonnes, en crédits par entreprise et par mois."},"monthly_credits":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Crédits par mois pour toute la watchlist : lignes × crédits par entreprise."},"summary":{"type":"string"}},"required":["volume","max_rows","rows","columns","credits_per_company","monthly_credits","summary"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists":{"post":{"operationId":"create_watchlist","summary":"Créer une watchlist","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Nom de la watchlist."},"query":{"description":"Requête sur la base France (lignes dédoublonnées par SIREN, colonne Fiche ajoutée). Absente : watchlist vide, remplie par add_rows ou import_csv.","type":"object","properties":{"naf_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"labels":{"minItems":1,"type":"array","items":{"type":"string","enum":["rge","qualiopi","bio"]}},"signals":{"type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false}},"additionalProperties":false},"row_key":{"description":"Clé de dédoublonnage des lignes. Défaut : siren avec query, sinon domain. Avec query : siren seulement.","type":"string","enum":["siren","siret","domain","email","phone","linkedin_url","place_id"]},"siren_min_confidence":{"description":"Confiance minimale d'un SIREN rattaché pour lancer les colonnes qui demandent un SIREN. Défaut : 0,95 (site, nom et lieu concordants : 1).","type":"number","minimum":0,"maximum":1},"max_rows":{"type":"integer","minimum":1,"maximum":100000,"description":"Plafond de lignes actives."},"keep_rule":{"description":"Critère de maintien (mêmes filtres) : une ligne qui ne le remplit plus sort. Absent : une entreprise entrée reste.","type":"object","properties":{"naf_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"naf_codes_2025":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"}},"department_codes":{"minItems":1,"maxItems":110,"type":"array","items":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"}},"commune_codes":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"}},"legal_form_codes":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{1,4}$"}},"headcount_bands":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^(NN|\\d{2})$"}},"status":{"minItems":1,"type":"array","items":{"type":"string","enum":["active","ceased"]}},"created":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false},"labels":{"minItems":1,"type":"array","items":{"type":"string","enum":["rge","qualiopi","bio"]}},"signals":{"type":"object","properties":{"types":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z]+(\\.[a-z]+)+$"}},"occurred":{"type":"object","properties":{"from":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"to":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"additionalProperties":false}},"required":["types"],"additionalProperties":false}},"additionalProperties":false},"exit_after_days":{"description":"Retrait d'une ligne après N jours dans la liste.","type":"integer","minimum":1,"maximum":3650}},"required":["name","max_rows"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"query":{"description":"Requête sur la base France ; absente si les lignes viennent seulement d'imports."},"row_key":{"type":"string","enum":["siren","siret","domain","email","phone","linkedin_url","place_id"]},"siren_min_confidence":{"type":"number"},"max_rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"keep_rule":{},"exit_after_days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active_rows":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"},"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_item_id":{"description":"Absent pour une colonne calculée.","type":"string"},"frequency":{"type":"string","enum":["daily","weekly","monthly"]},"recommended_frequency":{"type":"string","enum":["daily","weekly","monthly"]},"credits_per_company":{"description":"Forfait de la colonne à sa fréquence, en crédits par entreprise et par mois.","type":"integer","minimum":0,"maximum":9007199254740991},"formula":{"description":"Colonne calculée (0 crédit) : règle sur d'autres colonnes."},"condition":{},"alert_rule":{},"stop_after_empty_runs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bindings":{"type":"object","additionalProperties":{"type":"object","properties":{"column_id":{"type":"string","minLength":1,"maxLength":64},"field":{"type":"string","minLength":1,"maxLength":64}},"required":["column_id","field"],"additionalProperties":false},"description":"Champ choisi pour une entrée de la source quand plusieurs champs de la watchlist portent la sémantique demandée : { <entrée>: { column_id, field } }."},"fields":{"description":"Colonne d'entrée (base France, import CSV ou API) : ses champs et leur sémantique.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"semantic":{"type":"string"}},"required":["name","semantic"],"additionalProperties":false}}},"required":["id","name","position"],"additionalProperties":false}},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"connector":{"type":"string","description":"base.query (base France), csv ou api."},"frequency":{"description":"Absente : import unique.","type":"string","enum":["daily","weekly","monthly"]},"last_run_at":{"type":"string"},"last_report":{"description":"Bilan du dernier passage.","type":"object","properties":{"at":{"type":"string"},"received":{"type":"integer","minimum":0,"maximum":9007199254740991},"added":{"type":"integer","minimum":0,"maximum":9007199254740991},"duplicates":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Clé déjà passée par la watchlist, ou en double dans l'import."},"without_key":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Sans la clé de dédoublonnage de la watchlist."},"invalid":{"type":"integer","minimum":0,"maximum":9007199254740991},"beyond_limit":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Lignes valides non entrées : plafond de lignes ou fonds du compte."},"errors":{"type":"array","items":{"type":"object","properties":{"row":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Rang de la ligne (1 = première ligne de données)."},"reason":{"type":"string"}},"required":["row","reason"],"additionalProperties":false},"description":"Les 100 premières lignes refusées, avec leur raison."},"error":{"description":"Passage arrêté (fichier illisible, en-tête absent…) : rien n'est entré.","type":"string"}},"required":["at","received","added","duplicates","without_key","invalid","beyond_limit","errors"],"additionalProperties":false}},"required":["id","connector"],"additionalProperties":false}}},"required":["id","name","row_key","siren_min_confidence","max_rows","active_rows","created_at","columns"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/columns":{"post":{"operationId":"add_column","summary":"Ajouter une colonne","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price_item_id":{"type":"string","maxLength":100,"pattern":"^[a-z][a-z0-9_.-]*$","description":"Source de la colonne : identifiant de la grille de prix (ex. company pour la Fiche)."},"name":{"description":"Nom de la colonne, unique dans la watchlist. Défaut : nom de la source.","type":"string","minLength":1,"maxLength":100},"frequency":{"description":"Défaut : fréquence recommandée de la source. Le prix par entreprise et par mois en dépend.","type":"string","enum":["daily","weekly","monthly"]},"condition":{"description":"Vérifier seulement si cette règle est vraie : { op, field: { column, field }, value } (eq, neq, gt, gte, lt, lte, in, contains, exists, absent), combinables par and, or, not.","allOf":[{"$ref":"#/components/schemas/schema0"}]},"alert_rule":{"anyOf":[{"type":"object","properties":{"op":{"type":"string","enum":["changed"]},"fields":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["op"],"additionalProperties":false}],"description":"Alerte : { op: \"changed\", fields? } quand un champ change, ou une règle (même format que condition) quand elle devient vraie. column \"self\" = cette colonne."},"stop_after_empty_runs":{"type":"integer","minimum":1,"maximum":100,"description":"Arrêt de la colonne pour une ligne après N runs vides consécutifs."},"bindings":{"type":"object","additionalProperties":{"type":"object","properties":{"column_id":{"type":"string","minLength":1,"maxLength":64},"field":{"type":"string","minLength":1,"maxLength":64}},"required":["column_id","field"],"additionalProperties":false},"description":"Champ choisi pour une entrée de la source quand plusieurs champs de la watchlist portent la sémantique demandée : { <entrée>: { column_id, field } }."}},"required":["price_item_id"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_item_id":{"description":"Absent pour une colonne calculée.","type":"string"},"frequency":{"type":"string","enum":["daily","weekly","monthly"]},"recommended_frequency":{"type":"string","enum":["daily","weekly","monthly"]},"credits_per_company":{"description":"Forfait de la colonne à sa fréquence, en crédits par entreprise et par mois.","type":"integer","minimum":0,"maximum":9007199254740991},"formula":{"description":"Colonne calculée (0 crédit) : règle sur d'autres colonnes."},"condition":{},"alert_rule":{},"stop_after_empty_runs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bindings":{"type":"object","additionalProperties":{"type":"object","properties":{"column_id":{"type":"string","minLength":1,"maxLength":64},"field":{"type":"string","minLength":1,"maxLength":64}},"required":["column_id","field"],"additionalProperties":false},"description":"Champ choisi pour une entrée de la source quand plusieurs champs de la watchlist portent la sémantique demandée : { <entrée>: { column_id, field } }."},"fields":{"description":"Colonne d'entrée (base France, import CSV ou API) : ses champs et leur sémantique.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"semantic":{"type":"string"}},"required":["name","semantic"],"additionalProperties":false}}},"required":["id","name","position"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/columns/{column_id}":{"patch":{"operationId":"update_column","summary":"Modifier une colonne","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"frequency":{"description":"Hausse en cours de mois : la différence est débitée tout de suite. Baisse : nouveau prix au mois suivant, sans remboursement.","type":"string","enum":["daily","weekly","monthly"]},"condition":{"description":"null : retirer la condition.","nullable":true,"allOf":[{"$ref":"#/components/schemas/schema0"}]},"alert_rule":{"description":"null : retirer la règle d'alerte.","nullable":true,"anyOf":[{"type":"object","properties":{"op":{"type":"string","enum":["changed"]},"fields":{"minItems":1,"type":"array","items":{"type":"string","minLength":1}}},"required":["op"],"additionalProperties":false}]},"stop_after_empty_runs":{"nullable":true,"type":"integer","minimum":1,"maximum":100,"description":"Arrêt de la colonne pour une ligne après N runs vides consécutifs."},"max_cost":{"description":"Plafond de coût de la requête, en crédits entiers (ex. 50). Coût supérieur : rien n'est fait ni facturé.","anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."},{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"column_id","required":true,"description":"Identifiant de la colonne (renvoyé par add_column ou create_watchlist)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"column":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_item_id":{"description":"Absent pour une colonne calculée.","type":"string"},"frequency":{"type":"string","enum":["daily","weekly","monthly"]},"recommended_frequency":{"type":"string","enum":["daily","weekly","monthly"]},"credits_per_company":{"description":"Forfait de la colonne à sa fréquence, en crédits par entreprise et par mois.","type":"integer","minimum":0,"maximum":9007199254740991},"formula":{"description":"Colonne calculée (0 crédit) : règle sur d'autres colonnes."},"condition":{},"alert_rule":{},"stop_after_empty_runs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bindings":{"type":"object","additionalProperties":{"type":"object","properties":{"column_id":{"type":"string","minLength":1,"maxLength":64},"field":{"type":"string","minLength":1,"maxLength":64}},"required":["column_id","field"],"additionalProperties":false},"description":"Champ choisi pour une entrée de la source quand plusieurs champs de la watchlist portent la sémantique demandée : { <entrée>: { column_id, field } }."},"fields":{"description":"Colonne d'entrée (base France, import CSV ou API) : ses champs et leur sémantique.","type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"semantic":{"type":"string"}},"required":["name","semantic"],"additionalProperties":false}}},"required":["id","name","position"],"additionalProperties":false},"frequency_change":{"type":"object","properties":{"from":{"type":"string","enum":["daily","weekly","monthly"]},"to":{"type":"string","enum":["daily","weekly","monthly"]},"charged_now":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Crédits débités par cette hausse (différence de forfait des lignes déjà débitées ce mois)."},"companies_charged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_applies":{"type":"string","enum":["now","next_month"]}},"required":["from","to","charged_now","companies_charged","price_applies"],"additionalProperties":false}},"required":["column"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/rows/search":{"post":{"operationId":"get_rows","summary":"Lignes d'une watchlist","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changed_since":{"description":"Seulement les lignes entrées ou dont une valeur a changé depuis cet instant (ISO 8601).","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"fields":{"description":"Seulement ces champs dans cells (noms déclarés par les colonnes). Défaut : tous.","minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_]*$"}},"where":{"description":"Seulement les lignes où cette règle est vraie : { op, field: { column, field }, value }, combinables par and, or, not (ex. colonne calculée « prêt » : { op: \"eq\", field: { column: <id>, field: \"value\" }, value: true }).","allOf":[{"$ref":"#/components/schemas/schema0"}]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"cursor":{"description":"Curseur opaque renvoyé par page_info.next_cursor.","type":"string","maxLength":500}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Identifiant de la ligne (enrich_row)."},"key":{"type":"string","description":"Valeur normalisée de la clé de dédoublonnage (row_key de la watchlist)."},"added_at":{"type":"string"},"company":{"description":"Entreprise de la ligne, pour une watchlist dédoublonnée par SIREN.","type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"type":"string"},"acronym":{"type":"string"},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"naf_code_2025":{"type":"string"},"headcount_band":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"department_code":{"type":"string"},"postal_code":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"cells":{"type":"array","items":{"type":"object","properties":{"column_id":{"type":"string"},"field":{"type":"string"},"value":{"description":"Valeur du champ ; absente si le champ n'a pas été trouvé.","anyOf":[{"type":"boolean"},{"type":"number"},{"type":"string"},{"type":"array","items":{"type":"string"}}]},"observed_at":{"type":"string","description":"Première vérification qui a vu cette valeur."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["column_id","field","observed_at","source","updated_at"],"additionalProperties":false},"description":"Valeurs courantes des colonnes d'entrée et vérifiées ; updated_at = dernière vérification."}},"required":["id","key","added_at","cells"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/alerts/search":{"post":{"operationId":"get_alerts","summary":"Alertes des watchlists","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"watchlist_id":{"description":"Limiter à cette watchlist. Défaut : toutes celles du compte.","type":"string","minLength":1,"maxLength":64},"since":{"description":"Alertes créées à partir de cet instant (ISO 8601).","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"types":{"minItems":1,"type":"array","items":{"type":"string","enum":["field_changed","rule_became_true","row_added"]}},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"cursor":{"description":"Curseur opaque renvoyé par page_info.next_cursor.","type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["field_changed","rule_became_true","row_added"]},"watchlist_id":{"type":"string"},"column_id":{"type":"string"},"siren":{"description":"SIREN de la ligne quand elle en a un certain ; une ligne n'a pas besoin de SIREN.","type":"string"},"data":{},"created_at":{"type":"string"},"row":{"type":"object","properties":{"id":{"type":"string"},"values":{"type":"array","items":{"type":"object","properties":{"column_id":{"type":"string"},"field":{"type":"string"},"value":{"description":"Valeur du champ ; absente si le champ n'a pas été trouvé.","anyOf":[{"type":"boolean"},{"type":"number"},{"type":"string"},{"type":"array","items":{"type":"string"}}]},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"column_name":{"type":"string"}},"required":["column_id","field","source","updated_at","column_name"],"additionalProperties":false}}},"required":["id","values"],"additionalProperties":false,"description":"Fiche complète de la ligne au moment de la lecture : toutes les valeurs courantes de ses colonnes vérifiées, avec source et date."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["id","type","watchlist_id","created_at","row","source","updated_at"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/rows/{row_id}/enrich":{"post":{"operationId":"enrich_row","summary":"Vérifier une colonne à la demande sur une ligne","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"column_id":{"type":"string","minLength":1,"maxLength":64,"description":"Identifiant de la colonne (renvoyé par add_column ou create_watchlist)."},"max_cost":{"description":"Plafond de coût de la requête, en crédits entiers (ex. 50). Coût supérieur : rien n'est fait ni facturé.","anyOf":[{"type":"number"},{"type":"string"}]}},"required":["column_id"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."},{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"row_id","required":true,"description":"Identifiant d'une ligne active de la watchlist (renvoyé par get_rows)."}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"job_id":{"type":"string","description":"Identifiant du job de vérification ; le résultat se lit par get_rows."},"status":{"type":"string","enum":["queued"]},"row_id":{"type":"string"},"column_id":{"type":"string"},"estimated_cost":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Crédits débités à la vérification réussie (un mois de la colonne à la fréquence mensuelle) ; échec technique : rien."}},"required":["job_id","status","row_id","column_id","estimated_cost"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/rows":{"post":{"operationId":"add_rows","summary":"Ajouter un lot de lignes","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}],"nullable":true}},"description":"Lignes du lot (1000 au plus), objets clé → valeur. Une ligne n'a pas besoin de SIREN."},"mapping":{"description":"Au premier lot seulement (défaut : proposé depuis les clés). Les lots suivants reprennent celui de la source.","minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"header":{"type":"string","minLength":1,"maxLength":200},"name":{"type":"string","maxLength":63,"pattern":"^[a-z][a-z0-9_]*$"},"semantic":{"type":"string","enum":["SIREN","SIRET","DOMAIN","URL","EMAIL","PHONE","COMPANY_NAME","PERSON_NAME","LINKEDIN_URL","ADDRESS","POSTAL_CODE","GEO","PLACE_ID","COUNTRY","NONE"]}},"required":["header","name","semantic"],"additionalProperties":false}}},"required":["rows"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"job_id":{"description":"Job d'import ; absent si aucune ligne du lot n'est valide. Le bilan se lit dans la source de la watchlist.","type":"string"},"status":{"type":"string","enum":["queued","rejected"],"description":"rejected : aucune ligne valide, rien n'est créé ni déposé."},"row_source_id":{"description":"Source API de la watchlist, créée au premier lot qui a une ligne valide.","type":"string"},"received":{"type":"integer","minimum":0,"maximum":9007199254740991},"accepted":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Lignes valides, déposées : doublons et plafond sont comptés au bilan de la source."},"invalid":{"type":"integer","minimum":0,"maximum":9007199254740991},"errors":{"type":"array","items":{"type":"object","properties":{"row":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Rang de la ligne (1 = première ligne de données)."},"reason":{"type":"string"}},"required":["row","reason"],"additionalProperties":false},"description":"Les 100 premières lignes invalides, avec leur raison."},"mapping":{"type":"array","items":{"type":"object","properties":{"header":{"type":"string"},"name":{"type":"string"},"semantic":{"type":"string"}},"required":["header","name","semantic"],"additionalProperties":false}}},"required":["status","received","accepted","invalid","errors","mapping"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/imports/prepare":{"post":{"operationId":"prepare_csv_import","summary":"Préparer un import CSV (URL d'envoi, mapping proposé)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"headers":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string","maxLength":200},"description":"En-têtes du fichier CSV (première ligne), dans l'ordre."}},"required":["headers"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"file_key":{"type":"string"},"upload_url":{"type":"string","description":"URL présignée : PUT du fichier CSV, Content-Type text/csv."},"upload_expires_at":{"type":"string"},"max_bytes":{"type":"integer","minimum":0,"maximum":9007199254740991},"max_rows":{"type":"integer","minimum":0,"maximum":9007199254740991},"mapping":{"type":"array","items":{"type":"object","properties":{"header":{"type":"string"},"name":{"type":"string"},"semantic":{"type":"string"}},"required":["header","name","semantic"],"additionalProperties":false},"description":"Mapping proposé, à corriger au besoin puis à passer à import_csv."}},"required":["file_key","upload_url","upload_expires_at","max_bytes","max_rows","mapping"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/imports":{"post":{"operationId":"import_csv","summary":"Importer un fichier CSV déposé","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file_key":{"type":"string","minLength":1,"maxLength":512,"description":"Clé du fichier renvoyée par prepare_csv_import, une fois le fichier déposé."},"mapping":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"header":{"type":"string","minLength":1,"maxLength":200},"name":{"type":"string","maxLength":63,"pattern":"^[a-z][a-z0-9_]*$"},"semantic":{"type":"string","enum":["SIREN","SIRET","DOMAIN","URL","EMAIL","PHONE","COMPANY_NAME","PERSON_NAME","LINKEDIN_URL","ADDRESS","POSTAL_CODE","GEO","PLACE_ID","COUNTRY","NONE"]}},"required":["header","name","semantic"],"additionalProperties":false},"description":"Mapping proposé par prepare_csv_import, corrigé au besoin."}},"required":["file_key","mapping"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["queued"]},"row_source_id":{"type":"string","description":"Source de l'import : son bilan (last_report) se lit dans les sources de la watchlist."}},"required":["job_id","status","row_source_id"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/watchlists/{watchlist_id}/exports":{"post":{"operationId":"export_rows","summary":"Exporter les lignes d'une watchlist (CSV ou JSON)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"where":{"description":"Seulement les lignes où cette règle est vraie (même format que le where de get_rows).","allOf":[{"$ref":"#/components/schemas/schema0"}]},"format":{"default":"csv","description":"csv : une colonne par champ (<colonne>.<champ>), sa source et sa date ; json : un objet par ligne.","type":"string","enum":["csv","json"]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":64},"in":"path","name":"watchlist_id","required":true,"description":"Identifiant de la watchlist (renvoyé par create_watchlist)."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"export_id":{"description":"Job d'export (plus d'une page de lignes) : suivre avec get_export.","type":"string"},"status":{"type":"string","enum":["ready","queued","running","failed"]},"format":{"type":"string","enum":["csv","json"]},"row_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"content":{"description":"Export d'une page au plus, renvoyé tout de suite : texte CSV ou tableau JSON."},"download_url":{"description":"URL signée du fichier, valable une heure : rappeler get_export pour une nouvelle URL.","type":"string"},"error":{"type":"string"}},"required":["status"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"export_id":{"description":"Job d'export (plus d'une page de lignes) : suivre avec get_export.","type":"string"},"status":{"type":"string","enum":["ready","queued","running","failed"]},"format":{"type":"string","enum":["csv","json"]},"row_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"content":{"description":"Export d'une page au plus, renvoyé tout de suite : texte CSV ou tableau JSON."},"download_url":{"description":"URL signée du fichier, valable une heure : rappeler get_export pour une nouvelle URL.","type":"string"},"error":{"type":"string"}},"required":["status"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/exports/{export_id}":{"get":{"operationId":"get_export","summary":"Suivre un export de lignes","parameters":[{"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"in":"path","name":"export_id","required":true,"description":"Identifiant renvoyé par export_rows."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"export_id":{"description":"Job d'export (plus d'une page de lignes) : suivre avec get_export.","type":"string"},"status":{"type":"string","enum":["ready","queued","running","failed"]},"format":{"type":"string","enum":["csv","json"]},"row_count":{"type":"integer","minimum":0,"maximum":9007199254740991},"content":{"description":"Export d'une page au plus, renvoyé tout de suite : texte CSV ou tableau JSON."},"download_url":{"description":"URL signée du fichier, valable une heure : rappeler get_export pour une nouvelle URL.","type":"string"},"error":{"type":"string"}},"required":["status"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"nullable":true,"type":"string"},"total_count":{"nullable":true,"description":"Total après filtres, avant pagination ; null pour une recherche par nom (classée).","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes), pas un comptage exact."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false},"cost":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"unit":{"type":"string","enum":["credits"]},"billed":{"type":"boolean","description":"Vrai : `amount` a été débité du solde de crédits du compte."},"lines":{"type":"array","items":{"type":"object","properties":{"item":{"type":"string"},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments facturés par cette réponse."},"already_paid":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Éléments servis sans frais : déjà payés par le compte il y a moins de 30 jours."},"unit_price":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Montant en crédits entiers."}},"required":["item","quantity","already_paid","unit_price","amount"],"additionalProperties":false}}},"required":["amount","unit","billed","lines"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false},"description":"Sources citées par la réponse : nom, licence, URL."}},"required":["success","request_id","data","cost","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"422":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/billing/subscribe":{"post":{"operationId":"create_subscription_checkout","summary":"Créer une session Stripe Checkout d'abonnement à un plan","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","minLength":1,"maxLength":40,"description":"Identifiant du plan : starter, growth ou scale."}},"required":["plan"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"session_id":{"type":"string"},"plan":{"type":"string"}},"required":["checkout_url","session_id","plan"],"additionalProperties":false}},"required":["success","request_id","data"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/billing/checkout":{"post":{"operationId":"create_checkout","summary":"Créer une session Stripe Checkout de recharge de crédits","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"credits":{"type":"integer","minimum":10000,"maximum":5000000,"description":"Crédits du pack de recharge, valables 12 mois."}},"required":["credits"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"session_id":{"type":"string"},"credits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"price_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["checkout_url","session_id","credits","price_cents"],"additionalProperties":false}},"required":["success","request_id","data"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/billing/monthly-cap":{"put":{"operationId":"set_monthly_cap","summary":"Régler le plafond mensuel de crédits","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_cap":{"nullable":true,"description":"Plafond de crédits consommés par période ; null pour aucun plafond.","type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991}},"required":["monthly_cap"],"additionalProperties":false}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"monthly_cap":{"nullable":true,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["monthly_cap"],"additionalProperties":false}},"required":["success","request_id","data"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/companies/search":{"get":{"operationId":"public_company_search","summary":"Recherche d'entreprises par nom, SIREN ou SIRET, entrepreneurs individuels exclus (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","minLength":2,"maxLength":100},"in":"query","name":"q","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false}},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/communes":{"get":{"operationId":"public_communes","summary":"Ville ou code postal → code commune INSEE (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","minLength":2,"maxLength":100},"in":"query","name":"q","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Code commune INSEE à passer en commune_code (celui de la commune nouvelle pour une commune déléguée)."},"name":{"type":"string"},"department_code":{"type":"string"},"kind":{"type":"string","enum":["commune","arrondissement","delegated"]},"parent_name":{"type":"string"},"match":{"type":"string","enum":["exact","partial"],"description":"exact : libellé identique à la saisie, ou commune desservie par le code postal saisi."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["code","name","department_code","kind","match","source","updated_at"],"additionalProperties":false}},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/naf-codes":{"get":{"operationId":"public_naf_codes","summary":"Secteur en clair → code NAF rév. 2 (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","minLength":2,"maxLength":100},"in":"query","name":"q","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Code NAF rév. 2 ou préfixe, à passer en naf_code."},"label":{"type":"string"},"match":{"type":"string","enum":["exact","partial"]},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["code","label","match","source","updated_at"],"additionalProperties":false}},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/naf-codes/counts":{"get":{"operationId":"public_naf_counts","summary":"Code NAF ou SIREN → libellé officiel et entreprises actives par département, comptées (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"},"in":"query","name":"code","required":false},{"schema":{"type":"string","pattern":"^\\d{9}$"},"in":"query","name":"siren","required":false}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"code":{"type":"string","description":"Code NAF rév. 2 ou préfixe, à passer en naf_code."},"label":{"type":"string","description":"Libellé officiel INSEE."},"siren":{"description":"SIREN saisi : le code est son APE.","type":"string"},"counts":{"type":"object","properties":{"active_companies":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Entreprises actives dont l'APE commence par ce code, siège en France."},"departments":{"type":"array","items":{"type":"object","properties":{"department_code":{"type":"string"},"active_companies":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["department_code","active_companies"],"additionalProperties":false},"description":"Par département du siège, du plus grand au plus petit."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["active_companies","departments","source","updated_at"],"additionalProperties":false},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["code","label","counts","source","updated_at"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/companies/{siren}":{"get":{"operationId":"public_company","summary":"Fiche résumée et numéro de TVA vérifié auprès de VIES (gratuit, sans compte ; vérification en arrière-plan, `vat.pending`)","tags":["public"],"parameters":[{"schema":{"type":"string","pattern":"^\\d{9}$"},"in":"path","name":"siren","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/companies/{siren}/labels/{type}":{"get":{"operationId":"public_label_history","summary":"Historique d'un label RGE, Qualiopi ou Bio, et label détenu ou non à une date (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"date","required":false,"description":"Jour des travaux (AAAA-MM-JJ, passé ou du jour) : ajoute `on_date`, le label détenu ou non ce jour-là."},{"schema":{"type":"string","pattern":"^\\d{9}$"},"in":"path","name":"siren","required":true},{"schema":{"type":"string","enum":["rge","qualiopi","bio"]},"in":"path","name":"type","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"company":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"labels":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"label":{"type":"string"},"issuer":{"type":"string"},"domain":{"type":"string"},"siret":{"type":"string"},"valid_from":{"type":"string"},"valid_to":{"type":"string"},"first_seen_at":{"type":"string","description":"Première capture où le label figurait."},"removed_at":{"description":"Première capture où il ne figurait plus.","type":"string"},"active":{"type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["type","first_seen_at","active","source","updated_at"],"additionalProperties":false}},"on_date":{"type":"object","properties":{"date":{"type":"string"},"held":{"type":"string","enum":["yes","no","unknown"],"description":"Label détenu ce jour-là : yes, no, ou unknown quand l'historique stocké ne permet pas de conclure (jamais « no » par défaut)."},"reason":{"type":"string","enum":["listed","declared_period","withdrawn","expired","before_known_period","history_gap","no_dates","not_listed","no_label","outside_captures"],"description":"listed : présent dans une capture de ce jour ; declared_period : dans la période de validité déclarée ; withdrawn : retiré de la liste ; expired : période terminée sans renouvellement ; not_listed : absent des captures de ce jour ; no_label : aucun label rattaché ; before_known_period, history_gap, no_dates, outside_captures : inconnu."},"labels":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"domain":{"type":"string"},"siret":{"type":"string"},"valid_from":{"type":"string"},"valid_to":{"type":"string"},"reason":{"type":"string","enum":["listed","declared_period","withdrawn","expired","before_known_period","history_gap","no_dates","not_listed","no_label","outside_captures"]}},"required":["reason"],"additionalProperties":false},"description":"Labels détenus ce jour-là (10 au plus)."},"captures":{"type":"object","properties":{"first_on":{"nullable":true,"type":"string"},"last_on":{"nullable":true,"type":"string"}},"required":["first_on","last_on"],"additionalProperties":false,"description":"Première et dernière capture quotidienne de la liste : hors de cet intervalle, l'absence ne prouve rien."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["date","held","reason","labels","captures","source","updated_at"],"additionalProperties":false}},"required":["company","labels"],"additionalProperties":false},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true,"enum":[null]},"total_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes)."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false,"description":"Liste coupée à 10 lignes : la suite est dans l'API."},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","page_info","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/establishments/{siret}":{"get":{"operationId":"public_siret_check","summary":"Validité d'un SIRET, établissement actif ou fermé (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","pattern":"^\\d{14}$"},"in":"path","name":"siret","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"object","properties":{"siret":{"type":"string"},"valid":{"type":"boolean","description":"Clé de contrôle correcte, ou SIRET connu de SIRENE."},"found":{"type":"boolean"},"establishment":{"type":"object","properties":{"siret":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"status":{"type":"string","enum":["active","ceased"]},"is_head_office":{"type":"boolean"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siret","status","is_head_office","source","updated_at"],"additionalProperties":false},"company":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false}},"required":["siret","valid","found"],"additionalProperties":false},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/companies/new":{"get":{"operationId":"public_new_companies","summary":"Entreprises créées par commune ou département et secteur (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"},"in":"query","name":"department_code","required":false},{"schema":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"},"in":"query","name":"commune_code","required":false},{"schema":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"},"in":"query","name":"naf_code","required":false},{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"created_from","required":true,"description":"Créées à partir de cette date (AAAA-MM-JJ)."}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true,"enum":[null]},"total_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes)."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false,"description":"Liste coupée à 10 lignes : la suite est dans l'API."},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","page_info","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/signals":{"get":{"operationId":"public_signals","summary":"Procédures collectives, ventes de fonds, marchés publics (gratuit, sans compte)","tags":["public"],"parameters":[{"schema":{"type":"string","enum":["insolvency.opened","company.sold","contract.awarded"]},"in":"query","name":"type","required":true},{"schema":{"type":"string","pattern":"^(\\d{2}|2A|2B|97\\d|98\\d)$"},"in":"query","name":"department_code","required":false},{"schema":{"type":"string","pattern":"^(\\d{5}|2[AB]\\d{3})$"},"in":"query","name":"commune_code","required":false},{"schema":{"type":"string","pattern":"^\\d{2}(\\.\\d{1,2}[A-Z]?)?$"},"in":"query","name":"naf_code","required":false,"description":"Secteur de l'entreprise (APE en NAF rév. 2, code ou préfixe)."},{"schema":{"type":"string","pattern":"^\\d{9}$"},"in":"query","name":"siren","required":false},{"schema":{"type":"string","pattern":"^\\d{14}$"},"in":"query","name":"buyer_siret","required":false,"description":"Acheteur public (contract.awarded seulement)."},{"schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"in":"query","name":"occurred_from","required":false}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"siren":{"type":"string"},"siret":{"type":"string"},"occurred_on":{"type":"string"},"published_at":{"type":"string"},"detected_at":{"type":"string"},"amount":{"type":"string"},"data":{},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"company_name":{"type":"string"}},"required":["id","type","siren","occurred_on","detected_at","data","source","updated_at"],"additionalProperties":false}},"page_info":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true,"enum":[null]},"total_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total_count_estimated":{"type":"boolean","description":"Vrai : total_count est une estimation (au-delà de 100 000 lignes)."}},"required":["has_more","next_cursor","total_count","total_count_estimated"],"additionalProperties":false,"description":"Liste coupée à 10 lignes : la suite est dans l'API."},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","page_info","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}},"/v1/public/batch/{tool}":{"post":{"operationId":"public_batch","summary":"Mode lot : jusqu'à 50 SIREN ou SIRET pour les outils TVA, SIRET et labels (gratuit, sans compte ; au-delà, l'API)","tags":["public"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"string","pattern":"^\\d{9}(\\d{5})?$"},"description":"50 identifiants au plus ; les doublons sont ignorés."}},"required":["ids"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","enum":["vat","siret","rge","qualiopi","bio"]},"in":"path","name":"tool","required":true}],"security":[],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"request_id":{"type":"string"},"data":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"input":{"type":"string","description":"Identifiant tel que reçu."},"valid":{"type":"boolean","description":"Clé de contrôle correcte (du SIREN pour TVA et labels, du SIRET pour l'outil SIRET), ou SIRET connu de SIRENE."},"found":{"type":"boolean"},"company":{"type":"object","properties":{"siren":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"name":{"description":"Absent pour un entrepreneur individuel (donnée nominative) et en diffusion partielle.","type":"string"},"vat":{"type":"object","properties":{"number":{"type":"string","description":"N° de TVA intracommunautaire calculé depuis le SIREN (FR + clé + SIREN)."},"computed":{"type":"boolean","enum":[true],"description":"Toujours calculé ; seule une vérification VIES confirme qu'il est actif."},"valid":{"description":"Verdict de VIES (source `vies`, date dans `updated_at`). Absent si jamais vérifié ou VIES indisponible.","type":"boolean"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"},"pending":{"description":"Vérification VIES en cours (cache absent ou périmé, T68) : relire la fiche dans quelques secondes. Fiche seulement.","type":"boolean","enum":[true]}},"required":["number","computed","source","updated_at"],"additionalProperties":false},"status":{"type":"string","enum":["active","ceased"]},"legal_form_code":{"type":"string"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siren","status","source","updated_at"],"additionalProperties":false},"establishment":{"description":"Outil SIRET seulement.","type":"object","properties":{"siret":{"type":"string"},"diffusion":{"type":"string","enum":["partial"]},"status":{"type":"string","enum":["active","ceased"]},"is_head_office":{"type":"boolean"},"naf_code":{"type":"string"},"created_on":{"type":"string"},"ceased_on":{"type":"string"},"commune_code":{"type":"string"},"commune_name":{"type":"string"},"department_code":{"type":"string"},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["siret","status","is_head_office","source","updated_at"],"additionalProperties":false},"label":{"description":"Outils labels seulement, entreprise trouvée.","type":"object","properties":{"status":{"type":"string","enum":["active","lost","none","unknown"],"description":"active : label en cours ; lost : labels tous perdus ; none : absent de la dernière capture ; unknown : aucune capture de la liste."},"since":{"description":"Début du label en cours le plus ancien (AAAA-MM-JJ).","type":"string"},"lost_on":{"description":"Date de la dernière perte, si tous sont perdus.","type":"string"},"domains":{"type":"array","items":{"type":"string"},"description":"Labels ou domaines en cours, ou perdus si aucun n'est en cours."},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["status","domains","source","updated_at"],"additionalProperties":false},"source":{"type":"string","description":"Identifiant de la source (clé de `sources`)."},"updated_at":{"nullable":true,"description":"Date de mise à jour de la donnée à la source (ISO 8601).","type":"string"}},"required":["input","valid","found","source","updated_at"],"additionalProperties":false}},"sources":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"licence":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}}},"required":["success","request_id","data","sources"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}},"503":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}},"request_id":{"type":"string"}},"required":["success","error","message"],"additionalProperties":false}}}}}}}},"servers":[{"url":"https://api.withreachable.com"}],"security":[{"apiKey":[]}]}