> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nogogo.fr/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nogogo.fr/_mcp/server.

# Bulk Companies

POST https://companies/bulk
Content-Type: application/json

Recherche une entreprise française à partir de son SIREN et retourne ses principales données publiques d’identité.

Cet endpoint est utile pour l’enrichissement d’entreprise, l’enrichissement CRM, les workflows d’onboarding, la contextualisation client/fournisseur et les automatisations no-code/low-code.

## Variable de chemin

| Variable | Obligatoire | Description |
| --- | --- | --- |
| `siren` | Oui | SIREN français de l’entreprise, composé de 9 chiffres. Exemple : `802046185`. |

## Données retournées possibles

- `siren`
    
- `display_name`
    
- `legal_name`
    
- `is_active`
    
- `legal_status`
    
- `categorie_juridique_libelle`
    
- `code_ape`
    
- `activite_principale_libelle`
    
- `siege_commune`
    
- `siege_code_postal`
    

Certains champs peuvent être `null` selon la disponibilité des données publiques.

Reference: https://docs.nogogo.fr/nogogo-fr-api/companies/bulk-companies

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: collection
  version: 1.0.0
paths:
  /companies/bulk:
    post:
      operationId: Bulk Companies
      summary: Bulk Companies
      description: >-
        Recherche une entreprise française à partir de son SIREN et retourne ses
        principales données publiques d’identité.


        Cet endpoint est utile pour l’enrichissement d’entreprise,
        l’enrichissement CRM, les workflows d’onboarding, la contextualisation
        client/fournisseur et les automatisations no-code/low-code.


        ## Variable de chemin


        | Variable | Obligatoire | Description |

        | --- | --- | --- |

        | `siren` | Oui | SIREN français de l’entreprise, composé de 9 chiffres.
        Exemple : `802046185`. |


        ## Données retournées possibles


        - `siren`
            
        - `display_name`
            
        - `legal_name`
            
        - `is_active`
            
        - `legal_status`
            
        - `categorie_juridique_libelle`
            
        - `code_ape`
            
        - `activite_principale_libelle`
            
        - `siege_commune`
            
        - `siege_code_postal`
            

        Certains champs peuvent être `null` selon la disponibilité des données
        publiques.
      tags:
        - subpackage_companies
      parameters:
        - name: X-API-Key
          in: header
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Companies_Bulk Companies_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sirens:
                  type: array
                  items:
                    type: string
              required:
                - sirens
servers:
  - url: https:/
    description: https://{base_url}
components:
  schemas:
    CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItemsPositiveReasonsDetailsItems:
      type: object
      properties:
        code:
          type: string
        label:
          type: string
      required:
        - code
        - label
      title: >-
        CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItemsPositiveReasonsDetailsItems
    CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItems:
      type: object
      properties:
        siren:
          type: string
        denomination:
          type: string
        denomination_usuelle_1:
          description: Any type
        sigle:
          description: Any type
        legal_name:
          type: string
        display_name:
          type: string
        categorie_juridique_code:
          type: string
        categorie_juridique_libelle:
          type: string
        code_ape:
          type: string
        activite_principale_libelle:
          type: string
        date_creation:
          type: string
          format: date
        etat_administratif:
          type: string
        is_active:
          type: boolean
        date_fermeture:
          description: Any type
        legal_status:
          type: string
        legal_status_source:
          type: string
        legal_last_event_code:
          description: Any type
        legal_last_event_date:
          description: Any type
        incoherence_flag:
          type: boolean
        siege_code_postal:
          type: string
        siege_commune:
          type: string
        capital_social:
          type: integer
        capital_devise:
          type: string
        nb_dirigeants_actifs:
          type: integer
        dirigeant_principal_nom:
          type: string
        dirigeant_principal_role:
          type: string
        dirigeants_resume:
          type: string
        score_global:
          type: integer
        score_structure:
          type: integer
        score_financier:
          type: integer
        score_legal:
          type: integer
        score_dirigeance:
          type: integer
        note:
          type: string
        couleur:
          type: string
        score_confidence:
          type: integer
        confidence_label:
          type: string
        badge_label:
          description: Any type
        badge_reason:
          description: Any type
        profil_scoring:
          type: string
        sous_profil:
          type: string
        etat_scoring:
          type: string
        public_grade:
          type: string
        scoring_mode:
          type: string
        positive_reasons:
          type: array
          items:
            type: string
        negative_reasons:
          type: array
          items:
            description: Any type
        score_updated_at:
          type: string
          format: date-time
        summary_updated_at:
          type: string
          format: date-time
        positive_reasons_details:
          type: array
          items:
            $ref: >-
              #/components/schemas/CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItemsPositiveReasonsDetailsItems
        negative_reasons_details:
          type: array
          items:
            description: Any type
      required:
        - siren
        - denomination
        - legal_name
        - display_name
        - categorie_juridique_code
        - categorie_juridique_libelle
        - code_ape
        - activite_principale_libelle
        - date_creation
        - etat_administratif
        - is_active
        - legal_status
        - legal_status_source
        - incoherence_flag
        - siege_code_postal
        - siege_commune
        - capital_social
        - capital_devise
        - nb_dirigeants_actifs
        - dirigeant_principal_nom
        - dirigeant_principal_role
        - dirigeants_resume
        - score_global
        - score_structure
        - score_financier
        - score_legal
        - score_dirigeance
        - note
        - couleur
        - score_confidence
        - confidence_label
        - profil_scoring
        - sous_profil
        - etat_scoring
        - public_grade
        - scoring_mode
        - positive_reasons
        - negative_reasons
        - score_updated_at
        - summary_updated_at
        - positive_reasons_details
        - negative_reasons_details
      title: CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItems
    Companies_Bulk Companies_Response_200:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: >-
              #/components/schemas/CompaniesBulkPostResponsesContentApplicationJsonSchemaItemsItems
        count:
          type: integer
        applied_limit:
          type: integer
      required:
        - items
        - count
        - applied_limit
      title: Companies_Bulk Companies_Response_200
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

```

## Examples



**Request**

```json
{
  "sirens": [
    "{{siren}}",
    "652014051",
    "552081317"
  ]
}
```

**Response**

```json
{
  "items": [
    {
      "siren": "802046185",
      "denomination": "LVMH FASHION GROUP SUPPORT",
      "legal_name": "LVMH FASHION GROUP SUPPORT",
      "display_name": "LVMH FASHION GROUP SUPPORT",
      "categorie_juridique_code": "5710",
      "categorie_juridique_libelle": "SAS, société par actions simplifiée",
      "code_ape": "74.10Z",
      "activite_principale_libelle": "Activités spécialisées de design",
      "date_creation": "2014-04-14",
      "etat_administratif": "A",
      "is_active": true,
      "legal_status": "active",
      "legal_status_source": "insee",
      "incoherence_flag": false,
      "siege_code_postal": "75009",
      "siege_commune": "PARIS",
      "capital_social": 50000,
      "capital_devise": "EUR",
      "nb_dirigeants_actifs": 2,
      "dirigeant_principal_nom": "DELOITTE & ASSOCIES",
      "dirigeant_principal_role": "Commissaire aux comptes titulaire",
      "dirigeants_resume": "DELOITTE & ASSOCIES (Commissaire aux comptes titulaire), PASCALE Lepoivre (Président de SAS), DELOITTE & ASSOCIES (Commissaire aux comptes titulaire)",
      "score_global": 89,
      "score_structure": 75,
      "score_financier": 98,
      "score_legal": 100,
      "score_dirigeance": 80,
      "note": "A",
      "couleur": "vert",
      "score_confidence": 90,
      "confidence_label": "FORTE",
      "profil_scoring": "PME",
      "sous_profil": "SAS_SASU",
      "etat_scoring": "NORMAL",
      "public_grade": "true",
      "scoring_mode": "full",
      "positive_reasons": [
        "anciennete_solide",
        "activite_reelle_detectee",
        "entreprise_employeur",
        "historique_financier_exploitable",
        "dernier_resultat_positif",
        "croissance_ca_positive",
        "dirigeance_sans_risque_detecte"
      ],
      "negative_reasons": [],
      "score_updated_at": "2026-06-19T03:53:28.550598+00:00",
      "summary_updated_at": "2026-06-19T03:53:28.550598+00:00",
      "positive_reasons_details": [
        {
          "code": "anciennete_solide",
          "label": "Ancienneté solide"
        },
        {
          "code": "activite_reelle_detectee",
          "label": "Activité réelle détectée"
        },
        {
          "code": "entreprise_employeur",
          "label": "Entreprise employeur"
        },
        {
          "code": "historique_financier_exploitable",
          "label": "Historique financier exploitable"
        },
        {
          "code": "dernier_resultat_positif",
          "label": "Dernier résultat positif"
        },
        {
          "code": "croissance_ca_positive",
          "label": "Croissance du chiffre d'affaires"
        },
        {
          "code": "dirigeance_sans_risque_detecte",
          "label": "Aucun élément de risque dirigeant identifié"
        }
      ],
      "negative_reasons_details": []
    },
    {
      "siren": "652014051",
      "denomination": "CARREFOUR",
      "legal_name": "CARREFOUR",
      "display_name": "CARREFOUR (ASSU CARREFOUR SERV FINANCIERS CARREFOUR)",
      "categorie_juridique_code": "5599",
      "categorie_juridique_libelle": "SA à conseil d'administration (s.a.i.)",
      "code_ape": "64.20Z",
      "activite_principale_libelle": "Activités des sociétés holding",
      "date_creation": "1963-01-01",
      "etat_administratif": "A",
      "is_active": true,
      "legal_status": "active",
      "legal_status_source": "insee",
      "incoherence_flag": false,
      "siege_code_postal": "91300",
      "siege_commune": "MASSY",
      "capital_social": 1,
      "capital_devise": "EUR",
      "nb_dirigeants_actifs": 19,
      "dirigeant_principal_nom": "FREDERIC JEAN-CLAUDE BARRAULT",
      "dirigeant_principal_role": "Autre",
      "dirigeants_resume": "FREDERIC JEAN-CLAUDE BARRAULT (Autre), MARGUERITTE MARIE ALICE SIMONE BERARD (Administrateur), ALEXANDRE BOMPARD (Président du conseil d’administration et directeur général)",
      "score_global": 84,
      "score_structure": 78,
      "score_financier": 80,
      "score_legal": 100,
      "score_dirigeance": 85,
      "note": "A",
      "couleur": "vert",
      "score_confidence": 90,
      "confidence_label": "FORTE",
      "profil_scoring": "PME",
      "sous_profil": "SA_CA",
      "etat_scoring": "NORMAL",
      "public_grade": "true",
      "scoring_mode": "full",
      "positive_reasons": [
        "anciennete_solide",
        "activite_reelle_detectee",
        "entreprise_employeur",
        "historique_financier_exploitable",
        "dernier_resultat_positif",
        "dirigeance_sans_risque_detecte"
      ],
      "negative_reasons": [],
      "score_updated_at": "2026-06-27T22:16:48.540591+00:00",
      "summary_updated_at": "2026-06-27T22:16:48.540591+00:00",
      "positive_reasons_details": [
        {
          "code": "anciennete_solide",
          "label": "Ancienneté solide"
        },
        {
          "code": "activite_reelle_detectee",
          "label": "Activité réelle détectée"
        },
        {
          "code": "entreprise_employeur",
          "label": "Entreprise employeur"
        },
        {
          "code": "historique_financier_exploitable",
          "label": "Historique financier exploitable"
        },
        {
          "code": "dernier_resultat_positif",
          "label": "Dernier résultat positif"
        },
        {
          "code": "dirigeance_sans_risque_detecte",
          "label": "Aucun élément de risque dirigeant identifié"
        }
      ],
      "negative_reasons_details": [],
      "denomination_usuelle_1": null
    },
    {
      "siren": "552081317",
      "denomination": "ELECTRICITE DE FRANCE",
      "legal_name": "ELECTRICITE DE FRANCE",
      "display_name": "ELECTRICITE DE FRANCE",
      "categorie_juridique_code": "5599",
      "categorie_juridique_libelle": "SA à conseil d'administration (s.a.i.)",
      "code_ape": "35.11Y",
      "activite_principale_libelle": "string",
      "date_creation": "1955-01-01",
      "etat_administratif": "A",
      "is_active": true,
      "legal_status": "active",
      "legal_status_source": "insee",
      "incoherence_flag": false,
      "siege_code_postal": "75008",
      "siege_commune": "PARIS",
      "capital_social": 2084365041,
      "capital_devise": "EUR",
      "nb_dirigeants_actifs": 20,
      "dirigeant_principal_nom": "CLAIRE PEDINI",
      "dirigeant_principal_role": "Administrateur",
      "dirigeants_resume": "CLAIRE PEDINI (Administrateur), CHRISTOPHE Beguinet (Rôle 135), GILLES Denoyel (Administrateur)",
      "score_global": 73,
      "score_structure": 78,
      "score_financier": 47,
      "score_legal": 100,
      "score_dirigeance": 85,
      "note": "B",
      "couleur": "vert_clair",
      "score_confidence": 90,
      "confidence_label": "FORTE",
      "profil_scoring": "PME",
      "sous_profil": "SA_CA",
      "etat_scoring": "NORMAL",
      "public_grade": "true",
      "scoring_mode": "full",
      "positive_reasons": [
        "anciennete_solide",
        "activite_reelle_detectee",
        "entreprise_employeur",
        "historique_financier_exploitable",
        "dirigeance_sans_risque_detecte"
      ],
      "negative_reasons": [],
      "score_updated_at": "2026-06-22T22:53:35.900666+00:00",
      "summary_updated_at": "2026-06-22T22:53:35.900666+00:00",
      "positive_reasons_details": [
        {
          "code": "anciennete_solide",
          "label": "Ancienneté solide"
        },
        {
          "code": "activite_reelle_detectee",
          "label": "Activité réelle détectée"
        },
        {
          "code": "entreprise_employeur",
          "label": "Entreprise employeur"
        },
        {
          "code": "historique_financier_exploitable",
          "label": "Historique financier exploitable"
        },
        {
          "code": "dirigeance_sans_risque_detecte",
          "label": "Aucun élément de risque dirigeant identifié"
        }
      ],
      "negative_reasons_details": [],
      "sigle": null
    }
  ],
  "count": 3,
  "applied_limit": 3
}
```

**SDK Code**

```python Companies_Bulk Companies_example
import requests

url = "https://https/companies/bulk"

payload = { "sirens": ["{{siren}}", "652014051", "552081317"] }
headers = {
    "X-API-Key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Companies_Bulk Companies_example
const url = 'https://https/companies/bulk';
const options = {
  method: 'POST',
  headers: {'X-API-Key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"sirens":["{{siren}}","652014051","552081317"]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Companies_Bulk Companies_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://https/companies/bulk"

	payload := strings.NewReader("{\n  \"sirens\": [\n    \"{{siren}}\",\n    \"652014051\",\n    \"552081317\"\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-API-Key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Companies_Bulk Companies_example
require 'uri'
require 'net/http'

url = URI("https://https/companies/bulk")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"sirens\": [\n    \"{{siren}}\",\n    \"652014051\",\n    \"552081317\"\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java Companies_Bulk Companies_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/companies/bulk")
  .header("X-API-Key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"sirens\": [\n    \"{{siren}}\",\n    \"652014051\",\n    \"552081317\"\n  ]\n}")
  .asString();
```

```php Companies_Bulk Companies_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/companies/bulk', [
  'body' => '{
  "sirens": [
    "{{siren}}",
    "652014051",
    "552081317"
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-API-Key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Companies_Bulk Companies_example
using RestSharp;

var client = new RestClient("https://https/companies/bulk");
var request = new RestRequest(Method.POST);
request.AddHeader("X-API-Key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"sirens\": [\n    \"{{siren}}\",\n    \"652014051\",\n    \"552081317\"\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Companies_Bulk Companies_example
import Foundation

let headers = [
  "X-API-Key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = ["sirens": ["{{siren}}", "652014051", "552081317"]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://https/companies/bulk")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```