> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gabin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Companies and officers

> Search French companies by name, SIREN or filters, read a company profile, its establishments, officers and annual accounts, and use reference data as filters.

Company data comes from two public registers:

* **SIRENE** (INSEE): every legal unit and its establishments, with activity, size and address.
* **RNE** (Registre national des entreprises, INPI): officers, registry facts and filed annual accounts.

A company is identified by its **SIREN**, 9 digits. Each of its establishments (registered office, shops, plants, offices) has a **SIRET**, 14 digits: the SIREN followed by 5 digits. Activities are coded with the French **NAF** rev. 2 classification (for example `10.71C`, bakery).

All requests below send your key in the `Authorization` header. See [authentication](https://docs.gabin.ai/authentication.md).

## Search companies

`GET /v1/companies` finds companies by name and filters.

```bash curl theme={null}
curl "https://api.gabin.ai/v1/companies?q=boulangerie&insee=69266&limit=3" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```javascript JavaScript theme={null}
const params = new URLSearchParams({ q: "boulangerie", insee: "69266", limit: "3" });
const res = await fetch(`https://api.gabin.ai/v1/companies?${params}`, {
  headers: { Authorization: `Bearer ${process.env.GABIN_API_KEY}` },
});
const { data, meta } = await res.json();
```

```python Python theme={null}
import os
import requests

res = requests.get(
    "https://api.gabin.ai/v1/companies",
    params={"q": "boulangerie", "insee": "69266", "limit": 3},
    headers={"Authorization": f"Bearer {os.environ['GABIN_API_KEY']}"},
)
body = res.json()
```

```json theme={null}
{
  "data": [
    {
      "siren": "812765618",
      "name": "BOULANGERIE 53 GABRIEL",
      "naf_code": "10.71C",
      "naf_label": "Boulangerie et boulangerie-pâtisserie",
      "sector": "commerce-alimentaire",
      "created_on": "2015-07-27",
      "active": true,
      "partial_diffusion": false,
      "gabin_url": "https://gabin.ai/entreprise/boulangerie-53-gabriel-812765618",
      "legal_form": "SARL",
      "headcount_range": "02",
      "headquarters": {
        "address": "53 rue Gabriel Peri",
        "postal_code": "69100",
        "city": "Villeurbanne"
      },
      "latest_revenue": null,
      "latest_revenue_year_end": null
    },
    …
  ],
  "meta": {
    "page": {
      "next_cursor": "eyJ2IjoxLCJvIjozLCJsIjozLCJmIjoiMGVhNmM5NTEifQ.nVeBcxiu…",
      "limit": 3
    },
    "total": 21,
    "total_kind": "exact"
  }
}
```

Pass `meta.page.next_cursor` as `cursor` to get the next page, with the same filters. Pagination and `total_kind` are described in [conventions](https://docs.gabin.ai/conventions.md#pagination).

### Parameters

**q** `string`

Company name (prefix or contained words), SIREN or SIRET. Exact names come first.

**naf** `string`

Up to 20 activities, comma-separated: NAF sub-classes (`43.29A`), divisions (`47`) or sections (`G`). See [reference data](#reference-data).

**sector** `string`

A Gabin sector: a named group of NAF sub-classes, for example `plomberie-chauffage` or `commerce-alimentaire`. The accepted values are listed in the API reference.

**insee** `string`

INSEE code of a city, or of a Paris, Lyon or Marseille arrondissement. The INSEE code is the official 5-character city code (`69266` is Villeurbanne), not the postal code.

**iris** `string`

IRIS code of a district: 9 characters, starting with the city INSEE code. IRIS are the statistical districts of INSEE. Implies `insee`.

**department** `string`

Department code, for example `69`, `2A` or `974`.

**headcount** `string`

INSEE headcount range code, for example `11` (10 to 19 employees).

**legal\_form** `string`

Legal form families, comma-separated: `sas`, `sarl`, `sa`, `sci`, `scpi`, `association`, `public`.

**revenue\_min** `integer`

Minimum latest reported revenue, in euros.

**revenue\_max** `integer`

Maximum latest reported revenue, in euros.

**include\_closed** `boolean` (default: false)

Include ceased companies. By default only active companies are returned.

**headquarters\_only** `boolean` (default: false)

With a location filter, match on the registered office only.

**created\_after** `string`

Companies created on or after this date (`YYYY-MM-DD`). Requires `insee`, `iris` or `department`.

**limit** `integer` (default: 20)

Results per page, 1 to 100.

**cursor** `string`

`meta.page.next_cursor` of the previous page.

### How the filters combine

* **With a location** (`insee`, `iris`, `department`), a company matches when it has an establishment in the area, open or closed. Set `headquarters_only=true` to match on the registered office only. Results come newest first in a city, and in index order in a department.
* **With a name** (`q`), exact names come first.
* **With neither a name nor a location**, you get the largest active companies by latest revenue, and `latest_revenue` and `latest_revenue_year_end` are filled. A rare activity can take too long here and returns [`ZONE_REQUIRED`](https://docs.gabin.ai/errors#zone_required): add a location.

`latest_revenue` is only filled in that last case. For any other company, read `GET /v1/companies/{siren}/financials`.

The search returns summaries. Call `GET /v1/companies/{siren}` for a full profile.

## Get a company profile

`GET /v1/companies/{siren}` returns the identity, activity, legal form, size, registered office (address, district, building), registry facts from the RNE, the latest accounts summary and the latest collective insolvency procedure published in the BODACC (the official gazette of commercial announcements).

```bash curl theme={null}
curl "https://api.gabin.ai/v1/companies/552081317" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```javascript JavaScript theme={null}
const res = await fetch("https://api.gabin.ai/v1/companies/552081317", {
  headers: { Authorization: `Bearer ${process.env.GABIN_API_KEY}` },
});
const { data: company } = await res.json();
```

```python Python theme={null}
res = requests.get(
    "https://api.gabin.ai/v1/companies/552081317",
    headers={"Authorization": f"Bearer {os.environ['GABIN_API_KEY']}"},
)
company = res.json()["data"]
```

```json theme={null}
{
  "data": {
    "siren": "552081317",
    "name": "ELECTRICITE DE FRANCE",
    "naf_code": "35.11Z",
    "naf_label": "Production d'électricité",
    "sector": "energie",
    "created_on": "1955-01-01",
    "active": true,
    "partial_diffusion": false,
    "gabin_url": "https://gabin.ai/entreprise/electricite-de-france-552081317",
    "acronym": "EDF",
    "sole_proprietorship": false,
    "legal_form": { "code": "5599", "label": "SA" },
    "naf_section": {
      "code": "D",
      "label": "Production et distribution d'électricité, de gaz, de vapeur et d'air conditionné"
    },
    "headcount_range": { "code": "53", "label": "10 000 salariés et plus" },
    "category": "GE",
    "social_economy": false,
    "share_capital": 2084365041,
    "vat_number": "FR03552081317",
    "headquarters": {
      "siret": "55208131766522",
      "siren": "552081317",
      "headquarters": true,
      "trade_name": null,
      "address": "22 avenue de Wagram, 22-30",
      "postal_code": "75008",
      "city": "Paris",
      "insee": "75108",
      "naf_code": "35.11Z",
      "created_on": "2006-08-01",
      "closed_on": null,
      "active": true,
      "building_id": "bdnb-bg-286J-VT48-CDVE",
      "location": null
    },
    "city": { "insee": "75108", "name": "Paris 8e Arrondissement", "department": "75" },
    "district": null,
    "establishments_count": 9159,
    "registry": {
      "corporate_purpose": "D'assurer la production, le transport, la distribution, la fourniture et le négoce d'énergie électrique …",
      "fiscal_year_end": "3112",
      "mission_company": false,
      "variable_capital": false
    },
    "latest_financials": null,
    "collective_procedure": null
  },
  "meta": {}
}
```

A few fields to know:

* `active` is `false` for a ceased company. Ceased companies are still returned.
* `sole_proprietorship` is `true` for an *entrepreneur individuel*: the legal unit is a person, and `name` is that person's registered first and last name.
* `partial_diffusion` is `true` for a company under SIRENE partial diffusion. See [personal data](#personal-data).
* `headquarters.building_id` is the BDNB building of the registered office, when its address matches one. Open it with `GET /v1/buildings/{id}` (see [buildings](https://docs.gabin.ai/guides/buildings.md)).
* Labels (`naf_label`, `legal_form.label`, `headcount_range.label`) are the official French labels. Codes are stable.

## List establishments

`GET /v1/companies/{siren}/establishments` lists the establishments of a company, open and closed: the registered office first, then open ones, newest first. The list is paginated.

```bash theme={null}
curl "https://api.gabin.ai/v1/companies/552081317/establishments?limit=2" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": [
    {
      "siret": "55208131766522",
      "siren": "552081317",
      "headquarters": true,
      "trade_name": null,
      "address": "22 avenue de Wagram, 22-30",
      "postal_code": "75008",
      "city": "Paris",
      "insee": "75108",
      "naf_code": "35.11Z",
      "created_on": "2006-08-01",
      "closed_on": null,
      "active": true,
      "building_id": "bdnb-bg-286J-VT48-CDVE",
      "location": null
    },
    {
      "siret": "55208131792650",
      "siren": "552081317",
      "headquarters": false,
      "trade_name": "EDF",
      "address": "31 avenue Francoise Giroud",
      "postal_code": "21000",
      "city": "Dijon",
      "insee": "21231",
      "naf_code": "35.11Z",
      "created_on": "2026-11-01",
      "closed_on": null,
      "active": true,
      "building_id": null,
      "location": null
    }
  ],
  "meta": {
    "page": { "next_cursor": "eyJ2IjoxLCJvIjoyLCJsIjoyLCJmIjoiNTUyMDgxMzE3In0.FCHucKWU…", "limit": 2 },
    "total": 9159,
    "total_kind": "exact"
  }
}
```

`building_id` is set when the establishment's address matches a BDNB building at street-number level. `location` is the geocoded point `[lon, lat]`, or `null` when only the city is known.

To read one establishment directly, use `GET /v1/establishments/{siret}`. The response adds `company_name`:

```bash theme={null}
curl "https://api.gabin.ai/v1/establishments/44316399300019" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": {
    "siret": "44316399300019",
    "siren": "443163993",
    "headquarters": true,
    "trade_name": null,
    "address": "22 rue de la Republique",
    "postal_code": "69002",
    "city": "Lyon",
    "insee": "69382",
    "naf_code": "47.73Z",
    "created_on": "2002-08-23",
    "closed_on": null,
    "active": true,
    "building_id": "bdnb-bg-1M1D-U5N1-HH7E",
    "location": null,
    "company_name": "GRANDE PHARMACIE LYONNAISE"
  },
  "meta": {}
}
```

## Officers

### Officers of a company

`GET /v1/companies/{siren}/officers` returns the officers registered at the RNE: people and corporate officers (for example, statutory auditors). Management comes first, then current mandates. The list is not paginated: `meta.total` is the full count.

```bash theme={null}
curl "https://api.gabin.ai/v1/companies/552081317/officers" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": [
    {
      "type": "person",
      "id": "552081317213aac93",
      "first_names": "Bernard",
      "last_name": "Fontana",
      "usage_name": null,
      "birth_month": "1961-03",
      "role": "Président du conseil d'administration et directeur général",
      "active": true,
      "gabin_url": "https://gabin.ai/dirigeant/bernard-fontana-552081317213aac93"
    },
    {
      "type": "person",
      "id": "55208131772c4cc51",
      "first_names": "Claire",
      "last_name": "Baconnet",
      "usage_name": "Pedini",
      "birth_month": "1965-06",
      "role": "Administrateur",
      "active": true,
      "gabin_url": "https://gabin.ai/dirigeant/claire-pedini-55208131772c4cc51"
    },
    …
    {
      "type": "company",
      "siren": "775726417",
      "name": "KPMG SA",
      "role": "Commissaire aux comptes titulaire",
      "active": true
    }
  ],
  "meta": {
    "page": { "next_cursor": null, "limit": 20 },
    "total": 20,
    "total_kind": "exact"
  }
}
```

Each entry has a `type`:

* `person`: `first_names`, `last_name` (birth name), `usage_name` (usage name declared at the RNE, when it differs), `birth_month` and an `id` for the officer profile.
* `company`: a corporate officer, with `name` and its `siren` when known.

`role` is the French label from the register. `active` is `false` for a past mandate the register still publishes.

### Search officers by name

`GET /v1/officers?q=` finds people holding a mandate in a French company. `q` takes a last name, "first last" or "last first". Exact identities come first. The search is not paginated: `limit` goes up to 20 (default 8); refine `q` for more precise results.

```bash curl theme={null}
curl "https://api.gabin.ai/v1/officers?q=bernard%20fontana&limit=3" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```javascript JavaScript theme={null}
const params = new URLSearchParams({ q: "bernard fontana", limit: "3" });
const res = await fetch(`https://api.gabin.ai/v1/officers?${params}`, {
  headers: { Authorization: `Bearer ${process.env.GABIN_API_KEY}` },
});
const { data: officers } = await res.json();
```

```python Python theme={null}
res = requests.get(
    "https://api.gabin.ai/v1/officers",
    params={"q": "bernard fontana", "limit": 3},
    headers={"Authorization": f"Bearer {os.environ['GABIN_API_KEY']}"},
)
officers = res.json()["data"]
```

```json theme={null}
{
  "data": [
    {
      "id": "423254994ed0df73c",
      "first_names": "Bernard",
      "last_name": "Fontana",
      "usage_name": null,
      "birth_month": null,
      "company_name": "BERNARD FONTANA",
      "role": "Autre",
      "gabin_url": "https://gabin.ai/dirigeant/bernard-fontana-423254994ed0df73c"
    },
    {
      "id": "417781085ef0eede5",
      "first_names": "Bernard",
      "last_name": "Fontana",
      "usage_name": null,
      "birth_month": "1953-08",
      "company_name": "AGRI-INVEST",
      "role": "Gérant",
      "gabin_url": "https://gabin.ai/dirigeant/bernard-fontana-417781085ef0eede5"
    },
    {
      "id": "398732321213aac93",
      "first_names": "Bernard",
      "last_name": "Fontana",
      "usage_name": null,
      "birth_month": "1961-03",
      "company_name": "SCI DU BAS PORTEAU",
      "role": "Gérant et associé indéfiniment responsable",
      "gabin_url": "https://gabin.ai/dirigeant/bernard-fontana-398732321213aac93"
    }
  ],
  "meta": {
    "page": { "next_cursor": null, "limit": 3 },
    "total": 3,
    "total_kind": "lower_bound"
  }
}
```

Namesakes are common. Each result carries one company where the person holds a mandate and their `birth_month` (`YYYY-MM`), which together tell people apart.

### Officer profile

`GET /v1/officers/{id}` returns a person's mandates in every company where the same identity (name, first names, birth month) appears, and a bounded relationship graph.

```bash theme={null}
curl "https://api.gabin.ai/v1/officers/552081317213aac93" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": {
    "id": "552081317213aac93",
    "first_names": "Bernard",
    "last_name": "Fontana",
    "usage_name": null,
    "birth_month": "1961-03",
    "mandates": [
      {
        "role": "Président du conseil d'administration et directeur général",
        "active": true,
        "company": {
          "siren": "552081317",
          "name": "ELECTRICITE DE FRANCE",
          "naf_code": "35.11Z",
          …
        }
      },
      {
        "role": "Autre",
        "active": true,
        "company": { "siren": "379041395", "name": "FRAMATOME", … }
      },
      …
    ],
    "mandates_incomplete": false,
    "relations": {
      "nodes": [
        { "id": "552081317213aac93", "type": "officer", "name": "Bernard FONTANA", "level": 0 },
        { "id": "552081317", "type": "company", "name": "ELECTRICITE DE FRANCE", "level": 1 },
        { "id": "379041395", "type": "company", "name": "FRAMATOME", "level": 1 },
        …
      ],
      "links": [
        {
          "source": "552081317213aac93",
          "target": "552081317",
          "role": "Président du conseil d'administration et directeur général"
        },
        …
      ]
    }
  },
  "meta": {}
}
```

* Each mandate embeds a company summary, the same object as in the company search.
* `mandates_incomplete` is `true` when mandates in other companies could not all be gathered in time.
* `relations` is a graph you can draw directly: level 0 is the officer, level 1 their companies, level 2 the other officers of those companies. Node ids are officer ids or SIRENs.

> [!NOTE]
>
> An officer id is the SIREN of one of the person's mandates followed by 8 hexadecimal characters. The same person can therefore appear under several ids: above, `552081317213aac93` (found through EDF's officers) and `398732321213aac93` (found through the search) return the same six mandates. To deduplicate people across results, compare the last 8 characters together with the name and `birth_month`, or compare the mandates.

## Annual accounts

`GET /v1/companies/{siren}/financials` returns the annual accounts filed at the RNE: up to 10 fiscal years, most recent first, with income statement and balance sheet items in euros, and a summary of the latest year.

```bash curl theme={null}
curl "https://api.gabin.ai/v1/companies/432170579/financials" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```javascript JavaScript theme={null}
const res = await fetch("https://api.gabin.ai/v1/companies/432170579/financials", {
  headers: { Authorization: `Bearer ${process.env.GABIN_API_KEY}` },
});
const { data: financials } = await res.json();
```

```python Python theme={null}
res = requests.get(
    "https://api.gabin.ai/v1/companies/432170579/financials",
    headers={"Authorization": f"Bearer {os.environ['GABIN_API_KEY']}"},
)
financials = res.json()["data"]
```

```json theme={null}
{
  "data": {
    "siren": "432170579",
    "latest": {
      "fiscal_year_end": "2025-09-30",
      "duration_months": 12,
      "revenue": 7960648,
      "net_income": 448299,
      "equity": 2527910,
      "average_headcount": null,
      "revenue_growth_pct": 32
    },
    "fiscal_years": [
      {
        "fiscal_year_end": "2025-09-30",
        "duration_months": 12,
        "format": "full",
        "confidential": false,
        "revenue": 7960648,
        "export_revenue": 0,
        "gross_margin": 6311222,
        "value_added": 4017829,
        "ebitda": 869346,
        "operating_income": 716221,
        "net_income": 448299,
        "purchases_and_external_charges": 3951943,
        "inventory": 201448,
        "trade_receivables": 12336,
        "trade_payables": 136259,
        "operating_working_capital_need": 85644,
        "non_operating_working_capital_need": -578902,
        "working_capital": 231203,
        "cash": 724462,
        "financial_debt": 916860,
        "equity": 2527910,
        "total_assets": 4254117,
        "headcount": null,
        "payroll": 3146813,
        "taxes": 83767
      },
      …
    ]
  },
  "meta": {}
}
```

* `format` is `full` (tax return forms 2050 to 2059) or `simplified` (form 2033, fewer items).
* `confidential` is `true` when the income statement was filed as confidential: only balance sheet items are present.
* A `null` amount means the item is absent from the filing.
* Consolidated accounts, banks and insurers are not included.

Many small companies file confidential accounts or none at all, so `fiscal_years` can be empty and `latest` can be `null`. EDF (`552081317`), for example, returns an empty `fiscal_years` and `latest: null`. `latest` comes from a separate summary (the RNE accounts synthesis) and is often present when `fiscal_years` is empty.

## Reference data

Three endpoints list the values accepted by the company filters, with their official French labels. They are not paginated.

| Endpoint | Returns | Used by |
| - | - | - |
| `GET /v1/naf` | NAF rev. 2 sub-classes (732) with class, group, division, section and Gabin sector. Filter with `q` (label words or code prefix) and `section` | `naf` filter, `naf_code` field |
| `GET /v1/naf/{code}` | One sub-class. The code is accepted with or without the dot, in any case (`10.71C`, `1071c`) | |
| `GET /v1/legal-forms` | Legal form families. Each groups INSEE legal categories: `sas` covers SAS and SASU | `legal_form` filter |
| `GET /v1/headcount-ranges` | INSEE headcount ranges with `min_employees` and `max_employees` | `headcount` filter, `headcount_range` field |

```bash theme={null}
curl "https://api.gabin.ai/v1/naf?q=boulangerie" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": [
    {
      "code": "10.71B",
      "label": "Cuisson de produits de boulangerie",
      "class": "10.71",
      "group": "10.7",
      "division": { "code": "10", "label": "Industries alimentaires" },
      "section": { "code": "C", "label": "Industrie manufacturière" },
      "sector": null
    },
    {
      "code": "10.71C",
      "label": "Boulangerie et boulangerie-pâtisserie",
      "class": "10.71",
      "group": "10.7",
      "division": { "code": "10", "label": "Industries alimentaires" },
      "section": { "code": "C", "label": "Industrie manufacturière" },
      "sector": "commerce-alimentaire"
    }
  ],
  "meta": { "page": { "next_cursor": null, "limit": 2 }, "total": 2, "total_kind": "exact" }
}
```

Legal form families and headcount ranges:

```json theme={null}
{
  "data": [
    { "id": "sas", "label": "SAS, SASU" },
    { "id": "sarl", "label": "SARL, EURL" },
    { "id": "sa", "label": "SA" },
    { "id": "sci", "label": "SCI" },
    { "id": "scpi", "label": "SCPI" },
    { "id": "association", "label": "Association" },
    { "id": "public", "label": "Collectivité, établissement public" }
  ],
  …
}
```

```json theme={null}
{
  "data": [
    { "code": "NN", "label": "Effectif non renseigné", "min_employees": null, "max_employees": null },
    { "code": "00", "label": "Aucun salarié", "min_employees": 0, "max_employees": 0 },
    { "code": "01", "label": "1 ou 2 salariés", "min_employees": 1, "max_employees": 2 },
    …
    { "code": "21", "label": "50 à 99 salariés", "min_employees": 50, "max_employees": 99 },
    …
    { "code": "53", "label": "10 000 salariés et plus", "min_employees": 10000, "max_employees": null }
  ],
  …
}
```

Sole proprietorships are not a legal form family: they cannot be selected with `legal_form`.

### Use them as filters

Look up the codes once, then combine them in `GET /v1/companies`. This request finds bakery SAS with 50 to 99 employees. Without a name or a location, results are ranked by latest revenue:

```bash theme={null}
curl "https://api.gabin.ai/v1/companies?naf=10.71C&headcount=21&legal_form=sas&limit=3" \
  -H "Authorization: Bearer $GABIN_API_KEY"
```

```json theme={null}
{
  "data": [
    {
      "siren": "432170579",
      "name": "MAISON NARDEUX",
      "naf_code": "10.71C",
      "naf_label": "Boulangerie et boulangerie-pâtisserie",
      "sector": "commerce-alimentaire",
      "created_on": "2000-04-03",
      "active": true,
      "partial_diffusion": false,
      "gabin_url": "https://gabin.ai/entreprise/maison-nardeux-432170579",
      "legal_form": "SAS",
      "headcount_range": "21",
      "headquarters": {
        "address": "9 rue des Artisans",
        "postal_code": "37300",
        "city": "Joue-les-Tours"
      },
      "latest_revenue": 7960648,
      "latest_revenue_year_end": "2025-09-30"
    },
    …
  ],
  "meta": {
    "page": { "next_cursor": "eyJ2IjoxLCJvIjozLCJsIjozLCJmIjoiMWI5NmQ2YmMifQ.emFJ375C…", "limit": 3 },
    "total": 44,
    "total_kind": "exact"
  }
}
```

> [!TIP]
>
> For conditions the company search does not offer (revenue together with a city, loss-making companies, negative equity, company names starting with a prefix), use the [advanced search](https://docs.gabin.ai/guides/advanced-search.md) with `target: "companies"`.

## Personal data

Gabin exposes what the public registers publish, and nothing more:

* **Officers** are named with their first names, last name, usage name and month and year of birth (`birth_month`, `YYYY-MM`), as published by the RNE. The register gives no day of birth.
* **Sole proprietorships** (*entrepreneurs individuels*) appear under their registered name, which is the person's first and last name.
* **Companies under SIRENE partial diffusion** never show a person's name, a street address, a position or a building: `name` is a neutral label (`"Entrepreneur individuel"`), the address is limited to the postal code and city, and the officers list is empty. A person is never linked to such a company.
* **No contact data** is exposed: no email, no phone number, no personal address.

See [data sources](https://docs.gabin.ai/data.md#personal-data) for the full rules.

## Next steps

> [card] [Buildings](https://docs.gabin.ai/guides/buildings.md)
>
> Find the buildings a company occupies or owns, and the companies in a building.

> [card] [Advanced search](https://docs.gabin.ai/guides/advanced-search.md)
>
> Combine conditions with AND and OR groups across companies and buildings.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.