> ## 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.

# Get a company

> Profile of a company by SIREN: identity, activity, legal form, size, registered office (address, district, building), registry facts (RNE), latest accounts summary and collective procedure (BODACC).

Ceased companies are returned with `active: false`. Next: `/establishments`, `/officers` and `/financials` under the same path.



## OpenAPI

````yaml https://api.gabin.ai/v1/openapi.json get /v1/companies/{siren}
openapi: 3.1.0
info:
  title: Gabin API
  version: 1.0.0
  description: >-
    French company and real-estate data for builders: companies (SIRENE, RNE),
    establishments, officers, annual accounts, buildings (BDNB), parcels,
    addresses, zones, multi-criteria search, vector tiles, reference data.
    Guides: https://docs.gabin.ai.


    **Authentication.** Every endpoint except `/v1/health` and
    `/v1/openapi.json` requires `Authorization: Bearer <key>`: an API key
    (`gab_live_…`, created at https://gabin.ai/compte/api) or an OAuth access
    token (`gat_…`, MCP connectors).


    **Limits (free plan).** 60 weighted requests per minute and 5,000 units per
    UTC day per account. A request weighs 1 unless its endpoint states
    otherwise. Every response carries `X-RateLimit-Limit`,
    `X-RateLimit-Remaining`, `X-RateLimit-Reset`, `X-Quota-Remaining` and
    `X-Request-Id`.


    **Responses.** Success: `{ "data": …, "meta": { … } }`. Lists are paginated
    by an opaque cursor (`meta.page.next_cursor`, up to 100 per page and 10,000
    results per query). Errors: `{ "error": { "code", "message", "docs_url" }
    }`. Dates are ISO 8601, amounts in euros, areas in m², coordinates WGS84
    `[lon, lat]`.


    **Data rules.** Companies under SIRENE partial diffusion are returned
    without the person's name, street address, position or building. Officers
    come from public registers only (name, first names, month and year of birth,
    mandates), without contact details. No contact data is exposed.
  contact:
    name: Gabin
    url: https://gabin.ai
servers:
  - url: https://api.gabin.ai
security:
  - bearerAuth: []
tags:
  - name: Companies
    description: >-
      Companies (SIRENE legal units): search with filters, profile,
      establishments, officers, annual accounts.
  - name: Establishments
    description: Establishments (SIRENE), by SIRET.
  - name: Officers
    description: >-
      Company officers from public registers (RNE): search by name, mandates,
      relationships.
  - name: Reference data
    description: >-
      Values accepted by the filters: NAF activities, legal form families,
      headcount ranges.
  - name: Account
    description: 'The account behind the API key: plan, limits, remaining quota.'
  - name: Meta
    description: Service status and OpenAPI document. No authentication.
  - name: Buildings
    description: >-
      French buildings (BDNB): profile, linked companies, sections (energy,
      transactions, owners, condominium, parcels, parking, permits, fiber,
      planning, market) and geographic search.
  - name: Parcels
    description: 'Cadastral parcels: boundary, area, buildings.'
  - name: Addresses
    description: >-
      Address geocoding (Base Adresse Nationale) with the BDNB building at the
      address, and named places.
  - name: Zones
    description: >-
      Cities, districts (merged IRIS), departments, and market figures of a zone
      (prices, rents, demography, income).
  - name: Search
    description: >-
      Multi-criteria search on buildings or companies in a zone: a catalog of
      fields, AND conditions, OR groups.
  - name: Tiles
    description: Vector tiles (Mapbox Vector Tile) of the gabin.ai map layers.
paths:
  /v1/companies/{siren}:
    get:
      tags:
        - Companies
      summary: Get a company
      description: >-
        Profile of a company by SIREN: identity, activity, legal form, size,
        registered office (address, district, building), registry facts (RNE),
        latest accounts summary and collective procedure (BODACC).


        Ceased companies are returned with `active: false`. Next:
        `/establishments`, `/officers` and `/financials` under the same path.
      operationId: getCompany
      parameters:
        - name: siren
          in: path
          required: true
          description: 'SIREN of the company: 9 digits, no spaces. Example: 552100554.'
          schema:
            type: string
            pattern: ^\d{9}$
      responses:
        '200':
          description: OK
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Quota-Remaining:
              $ref: '#/components/headers/X-Quota-Remaining'
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    $ref: '#/components/schemas/Company'
                  meta:
                    type: object
                    description: Empty for a single resource.
              example:
                data:
                  siren: '999100017'
                  name: Atelier Thermique du Rhône
                  naf_code: 43.29A
                  naf_label: Travaux d'isolation
                  sector: renovation-energetique
                  created_on: '2014-03-12'
                  active: true
                  partial_diffusion: false
                  gabin_url: >-
                    https://gabin.ai/entreprise/atelier-thermique-du-rhone-999100017
                  legal_form:
                    code: '5710'
                    label: SAS, société par actions simplifiée
                  headcount_range:
                    code: '11'
                    label: 10 à 19 salariés
                  headquarters:
                    siret: '99910001700011'
                    siren: '999100017'
                    headquarters: true
                    trade_name: null
                    address: 12 rue Émile Zola
                    postal_code: '69100'
                    city: Villeurbanne
                    insee: '69266'
                    naf_code: 43.29A
                    created_on: '2014-03-12'
                    closed_on: null
                    active: true
                    building_id: bdnb-bg-CJ69-HW8G-PTTG
                    location:
                      - 4.8795
                      - 45.7665
                  latest_revenue: null
                  latest_revenue_year_end: null
                  acronym: null
                  sole_proprietorship: false
                  naf_section:
                    code: F
                    label: Construction
                  category: PME
                  social_economy: false
                  share_capital: 50000
                  vat_number: FR63999100017
                  city:
                    insee: '69266'
                    name: Villeurbanne
                    department: '69'
                  district:
                    iris: '692660101'
                    name: Gratte-Ciel
                  establishments_count: 2
                  registry:
                    corporate_purpose: Travaux d'isolation thermique et acoustique.
                    fiscal_year_end: '3112'
                    mission_company: false
                    variable_capital: false
                  latest_financials:
                    fiscal_year_end: '2025-12-31'
                    duration_months: 12
                    revenue: 2450000
                    net_income: 132000
                    equity: 610000
                    average_headcount: 14
                    revenue_growth_pct: 8.2
                  collective_procedure: null
                meta: {}
        '400':
          description: INVALID
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INVALID:
                  value:
                    error:
                      code: INVALID
                      message: 'limit: Too big: expected number to be <=100'
                      docs_url: https://docs.gabin.ai/errors#invalid
        '401':
          description: UNAUTHENTICATED
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UNAUTHENTICATED:
                  value:
                    error:
                      code: UNAUTHENTICATED
                      message: Invalid or revoked API key.
                      docs_url: https://docs.gabin.ai/errors#unauthenticated
        '404':
          description: NOT_FOUND
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                NOT_FOUND:
                  value:
                    error:
                      code: NOT_FOUND
                      message: No company with SIREN 999999999.
                      docs_url: https://docs.gabin.ai/errors#not_found
        '429':
          description: RATE_LIMITED, QUOTA_EXCEEDED
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                RATE_LIMITED:
                  value:
                    error:
                      code: RATE_LIMITED
                      message: >-
                        Rate limit reached (60 weighted requests per minute).
                        Retry in 12 s.
                      docs_url: https://docs.gabin.ai/errors#rate_limited
                QUOTA_EXCEEDED:
                  value:
                    error:
                      code: QUOTA_EXCEEDED
                      message: >-
                        Daily quota reached (5000 units per UTC day). It resets
                        at 00:00 UTC.
                      docs_url: https://docs.gabin.ai/errors#quota_exceeded
        '503':
          description: TIMEOUT, BUSY
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                TIMEOUT:
                  value:
                    error:
                      code: TIMEOUT
                      message: The query took too long. Narrow it down and retry.
                      docs_url: https://docs.gabin.ai/errors#timeout
                BUSY:
                  value:
                    error:
                      code: BUSY
                      message: >-
                        The API is serving too many database requests right now.
                        Retry in 1 s.
                      docs_url: https://docs.gabin.ai/errors#busy
components:
  headers:
    X-Request-Id:
      description: Unique id of the request; quote it when contacting support.
      schema:
        type: string
    X-RateLimit-Limit:
      description: Weighted requests allowed per minute for the account.
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Weighted requests left in the current minute.
      schema:
        type: integer
    X-RateLimit-Reset:
      description: Seconds until the per-minute window resets.
      schema:
        type: integer
    X-Quota-Remaining:
      description: Units left in the daily quota (UTC day).
      schema:
        type: integer
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  schemas:
    Company:
      type: object
      properties:
        siren:
          type: string
          description: 'SIREN: 9 digits. Example: 552100554.'
        name:
          type: string
          description: >-
            Registered name; first and last name for a sole proprietorship.
            Neutral label under partial diffusion ("Entrepreneur individuel").
            Example: "Atelier Thermique du Rhône".
        naf_code:
          type: string
          description: 'NAF rev. 2 sub-class of the company. Example: "43.29A".'
        naf_label:
          type: string
          description: 'Label of the NAF code, in French. Example: "Travaux d''isolation".'
        sector:
          description: Gabin sector slug of the NAF code, null outside sectors.
          type:
            - string
            - 'null'
        created_on:
          description: Creation date (YYYY-MM-DD).
          type:
            - string
            - 'null'
        active:
          type: boolean
          description: False when the company has ceased (SIRENE state C).
        partial_diffusion:
          type: boolean
          description: >-
            True when the company is under SIRENE partial diffusion: no name of
            the person, address limited to the city, no position, no building,
            no officers.
        gabin_url:
          type: string
          description: Page of the company on gabin.ai.
        acronym:
          description: Acronym (sigle) when declared.
          type:
            - string
            - 'null'
        sole_proprietorship:
          type: boolean
          description: >-
            True when the legal unit is a natural person (entrepreneur
            individuel).
        legal_form:
          type: object
          properties:
            code:
              description: 'INSEE legal category code. Example: "5710".'
              type:
                - string
                - 'null'
            label:
              type: string
              description: INSEE label of the legal form, in French.
          required:
            - code
            - label
        naf_section:
          anyOf:
            - type: object
              properties:
                code:
                  type: string
                label:
                  type: string
              required:
                - code
                - label
            - type: 'null'
          description: >-
            NAF section of the activity. Example: {"code": "F", "label":
            "Construction"}.
        headcount_range:
          type: object
          properties:
            code:
              type: string
              enum:
                - '11'
                - '12'
                - '21'
                - '22'
                - '31'
                - '32'
                - '41'
                - '42'
                - '51'
                - '52'
                - '53'
                - NN
                - '00'
                - '01'
                - '02'
                - '03'
              description: INSEE headcount range code.
            label:
              type: string
              description: 'Label, in French. Example: "10 à 19 salariés".'
          required:
            - code
            - label
        category:
          anyOf:
            - type: string
              enum:
                - PME
                - ETI
                - GE
            - type: 'null'
          description: 'INSEE company size category: PME (SME), ETI (mid-cap), GE (large).'
        social_economy:
          type: boolean
          description: Member of the social and solidarity economy (ESS).
        share_capital:
          description: Share capital declared at the RNE. In euros; null when not reported.
          type:
            - number
            - 'null'
        vat_number:
          description: >-
            Intra-EU VAT number computed from the SIREN. Example:
            "FR58999722432".
          type:
            - string
            - 'null'
        headquarters:
          anyOf:
            - $ref: '#/components/schemas/Establishment'
            - type: 'null'
          description: Registered office.
        city:
          anyOf:
            - type: object
              properties:
                insee:
                  type: string
                name:
                  type: string
                department:
                  type: string
              required:
                - insee
                - name
                - department
            - type: 'null'
          description: City of the registered office.
        district:
          anyOf:
            - type: object
              properties:
                iris:
                  type: string
                name:
                  type: string
              required:
                - iris
                - name
            - type: 'null'
          description: >-
            District (IRIS) of the registered office, only when its position is
            known at street level.
        establishments_count:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: Number of establishments, open and closed.
        registry:
          anyOf:
            - type: object
              properties:
                corporate_purpose:
                  description: >-
                    Corporate purpose from the articles (objet social), in
                    French.
                  type:
                    - string
                    - 'null'
                fiscal_year_end:
                  description: >-
                    Day and month of the fiscal year end, "DDMM". Example:
                    "3112".
                  type:
                    - string
                    - 'null'
                mission_company:
                  type: boolean
                  description: Société à mission.
                variable_capital:
                  type: boolean
                  description: Variable share capital.
              required:
                - corporate_purpose
                - fiscal_year_end
                - mission_company
                - variable_capital
            - type: 'null'
          description: >-
            Facts filed at the RNE (national business register); null when
            unknown or under partial diffusion.
        latest_financials:
          anyOf:
            - type: object
              properties:
                fiscal_year_end:
                  type: string
                  description: Closing date of the fiscal year (YYYY-MM-DD).
                duration_months:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: 'null'
                  description: Length of the fiscal year, in months.
                revenue:
                  description: >-
                    Revenue (chiffre d'affaires). In euros; null when not
                    reported.
                  type:
                    - number
                    - 'null'
                net_income:
                  description: Net income. In euros; null when not reported.
                  type:
                    - number
                    - 'null'
                equity:
                  description: Shareholders' equity. In euros; null when not reported.
                  type:
                    - number
                    - 'null'
                average_headcount:
                  anyOf:
                    - type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                    - type: 'null'
                  description: Average headcount reported.
                revenue_growth_pct:
                  description: >-
                    Revenue change versus the previous fiscal year, in percent.
                    Example: 12.5.
                  type:
                    - number
                    - 'null'
              required:
                - fiscal_year_end
                - duration_months
                - revenue
                - net_income
                - equity
                - average_headcount
                - revenue_growth_pct
              description: >-
                Latest filed accounts (summary, from the RNE accounts
                synthesis).
            - type: 'null'
        collective_procedure:
          anyOf:
            - type: object
              properties:
                ongoing:
                  type: boolean
                  description: True while the procedure is open.
                nature:
                  description: >-
                    Nature as published in the BODACC, in French. Example:
                    "Redressement judiciaire".
                  type:
                    - string
                    - 'null'
                date:
                  description: Date of the judgment (YYYY-MM-DD).
                  type:
                    - string
                    - 'null'
              required:
                - ongoing
                - nature
                - date
            - type: 'null'
          description: >-
            Latest collective insolvency procedure published in the BODACC; null
            when none.
      required:
        - siren
        - name
        - naf_code
        - naf_label
        - sector
        - created_on
        - active
        - partial_diffusion
        - gabin_url
        - acronym
        - sole_proprietorship
        - legal_form
        - naf_section
        - headcount_range
        - category
        - social_economy
        - share_capital
        - vat_number
        - headquarters
        - city
        - district
        - establishments_count
        - registry
        - latest_financials
        - collective_procedure
      description: >-
        A company (SIRENE legal unit) with its registered office, registry facts
        and latest accounts.
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHENTICATED
                - FORBIDDEN
                - NOT_FOUND
                - INVALID
                - ZONE_REQUIRED
                - PAGINATION_LIMIT
                - RATE_LIMITED
                - QUOTA_EXCEEDED
                - TIMEOUT
                - BUSY
                - INTERNAL
              description: Stable machine-readable code.
            message:
              type: string
              description: Human-readable explanation, in English.
            docs_url:
              type: string
              description: Documentation page for this error code.
          required:
            - code
            - message
            - docs_url
      required:
        - error
      description: Error body. The HTTP status matches `error.code`.
    Establishment:
      type: object
      properties:
        siret:
          type: string
          description: 'SIRET: 14 digits. Example: 55210055400013.'
        siren:
          type: string
          description: SIREN of the company that owns the establishment.
        headquarters:
          type: boolean
          description: True for the registered office (siège).
        trade_name:
          description: 'Sign or trade name (enseigne) when declared. Example: "Le Comptoir".'
          type:
            - string
            - 'null'
        address:
          type: string
          description: >-
            Street address. Limited to "postal code + city" when the
            establishment is under SIRENE partial diffusion or has no street.
            Example: "12 rue Émile Zola".
        postal_code:
          description: 'Postal code. Example: "69100".'
          type:
            - string
            - 'null'
        city:
          description: 'City name. Example: "Villeurbanne".'
          type:
            - string
            - 'null'
        insee:
          description: >-
            INSEE code of the city (5 characters); null outside France. Example:
            "69266".
          type:
            - string
            - 'null'
        naf_code:
          description: >-
            NAF rev. 2 code of the establishment, may differ from the company's.
            Example: "43.29A".
          type:
            - string
            - 'null'
        created_on:
          description: Creation date (YYYY-MM-DD).
          type:
            - string
            - 'null'
        closed_on:
          description: >-
            Closing date (YYYY-MM-DD) when the establishment is closed, else
            null.
          type:
            - string
            - 'null'
        active:
          type: boolean
          description: True when the establishment is open (SIRENE state A).
        building_id:
          description: >-
            BDNB building id (batiment_groupe_id) the establishment occupies,
            when its address matches a building at street-number level. Example:
            "bdnb-bg-CJ69-HW8G-PTTG".
          type:
            - string
            - 'null'
        location:
          anyOf:
            - type: array
              prefixItems:
                - type: number
                - type: number
              items: false
              minItems: 2
              maxItems: 2
              description: 'WGS84 coordinates `[lon, lat]`. Example: [4.8795, 45.7665].'
            - type: 'null'
          description: >-
            Geocoded position `[lon, lat]` (WGS84) at street-number or street
            level; null when only the city is known.
      required:
        - siret
        - siren
        - headquarters
        - trade_name
        - address
        - postal_code
        - city
        - insee
        - naf_code
        - created_on
        - closed_on
        - active
        - building_id
        - location
      description: >-
        An establishment (SIRENE). Under partial diffusion: no trade name, no
        street, no position, no building.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key `gab_live_…` or OAuth access token `gat_…`.

````

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