Skip to main content

V3 Legal-Entities API

The V3 legal-entities API is deprecated. The following routes will stop responding starting from September 2026:
  • GET /api/v3/legalentities
  • GET /api/v3/legalentities/{id}

V4 Establishments & Legal-Units APIs

The V4 APIs have no announced sunset date, but the Lucca API (V5) is the long-term strategic target.If you are on V3 and want a lower-friction interim step (same API-key authentication), you may migrate to V4 first — but a future migration to the V5 Lucca API will still be required.
  • GET /organization/structure/api/establishments
  • GET /organization/structure/api/legal-units
The V5 Lucca API business-establishments and legal-entities endpoints are stable and will not undergo breaking changes. We recommend moving to the Lucca API as soon as possible to take advantage of its improved performance, richer data model, and long-term support.
Naming change — read carefully. What was called a “legal-entity” (or legalentity) in V3 is now called a “business-establishment” in V5 (and “establishment” in v4). The V5 Lucca API also has a resource called “legal-entity”, but it represents a different concept — the parent legal company structure. See the concept mapping section below for a detailed explanation.

Understanding the Naming Change

In V3, the legalentity resource bundled two concerns into one: the legal company (SIREN in France) and the physical office site (SIRET in France). V4 separated these into legal-units and establishments. The V5 Lucca API continues this separation but renames both resources:
V3V4V5 (Lucca API)Description
legalentityestablishmentbusiness-establishmentsA physical site, office, or branch — identified by a SIRET in France
legalentity.legalUnit (embedded)legal-unitlegal-entityThe legal company structure — identified by a SIREN in France
If you are migrating from V3 legalentities, your target is /lucca-api/business-establishments, not /lucca-api/legal-entities. The V5 legal-entity is the equivalent of the V4 legal-unit — the parent company, not the establishment.

Before You Start: Switch to OAuth 2.0

Regardless of your starting version, the Lucca API requires an OAuth 2.0 bearer token in place of the legacy API key. Request the scope that matches your use case:
OperationRequired scope
Read business-establishmentsbusiness-establishments.readonly
Read legal-entitieslegal-entities.readonly
Additionally, all requests must include the Api-Version: 2024-11-01 HTTP header.
A single OAuth 2.0 token can carry multiple scopes. Combine all the scopes you need in one token request — for example: scope=business-establishments.readonly legal-entities.readonly.

Authentication

How to obtain and use OAuth 2.0 bearer tokens with the Lucca authorization server.

Versioning

How to use the Api-Version header to specify the API version.

Pick Your Starting Version


If you were using V4 legal-units, the migration to V5 legal-entities is also needed.
V4V5
GET /organization/structure/api/legal-unitsGET /lucca-api/legal-entities

What Changes

  • Resource renamed: V4 legal-unit → V5 legal-entity.
  • namelegalName: the field is renamed to clarify it is the legal name of the entity.
  • coderemoteId: renamed for consistency.
  • countryId (ISO alpha-2) → countryCode (ISO alpha-3): changed from "FR" to "FRA".
  • legalIdentificationNumbertaxIdentificationNumber: now a structured { format, value } object.
  • activityCodeindustryCode: now a structured { format, value } object.
  • headquartersId removed: the headquarters information is now on the business-establishment side (isHeadquarters: true).
  • country object removed: replaced by countryCode and currencyCode top-level fields.
  • IDs are strings: integers in V4 (3), strings in V5 ("3").
  • New fields: currencyCode, links.businessEstablishments, lastArchivedAt, lastUpdatedAt.

Field Mapping Reference

V4 legal-unit fieldV5 legal-entity fieldNotes
ididString in V5 (integer in V4)
(new in V5)typeAlways "legal-entity"
(new in V5)urlSelf-link URI
namelegalNameRenamed
coderemoteIdRenamed
countryId (alpha-2)countryCode (alpha-3)Changed from "FR" to "FRA"
country (object)(removed)Replaced by countryCode and currencyCode
(from country)currencyCodeTop-level field in V5 (e.g. "EUR")
legalIdentificationNumbertaxIdentificationNumberNow { format, value } — format: "franceSIREN", "spainNIF", "germanySN", or "other"
activityCodeindustryCodeNow { format, value }
headquartersId(removed)Check isHeadquarters on business-establishments instead
isArchivedisArchivedSame semantics
createdAtcreatedAt
(new in V5)lastUpdatedAt
(new in V5)lastArchivedAt
(new in V5)links.businessEstablishmentsPre-built link to business-establishments belonging to this entity

Further Reading

Lucca API Introduction

Overview of the Lucca API, versioning, and pagination.

V5 Business-Establishment Reference

Full reference for the Lucca API business-establishment resource.

V5 Legal-Entity Reference

Full reference for the Lucca API legal-entity resource.

Authentication

How to obtain and use OAuth 2.0 bearer tokens.

Pagination

Cursor-based pagination in the Lucca API, with examples.

Rate Limits

Rate and size limits applied to the Lucca API.