If you sell to French companies, the NAF code turns up within the first hour of list building. It sits on payslips, on Kbis extracts, and on every record in the national business register, and it is the one field that states what a French business actually does. It is also about to change for every company in the country. This guide covers what the code is, why people also call it an APE code, how to read its five characters, where to find it, what happens on 1 January 2027, and how to turn a single code into a working prospect list without leaving a spreadsheet.
What is a NAF code, and who assigns it?
NAF stands for Nomenclature d'Activités Française, the classification of economic activities maintained by INSEE, the French national statistics institute. Every business and every establishment registered in France receives a code made of four digits and one letter, for example 6201Z for computer programming or 7022Z for management consultancy. The code attaches to the SIREN of the legal entity and to each SIRET of its establishments, so a group with ten sites can carry one activity at head office and a different one on a specific location.
Two properties matter once you plan to use the data commercially. First, the company does not pick its own code. INSEE assigns it from the main activity declared at registration, so it reflects a declaration to the administration rather than a marketing positioning. Second, it is a statistical instrument before it is a commercial one. The nomenclature exists to aggregate the French economy. That makes it wonderfully consistent across the whole register and, at the same time, blunt: two companies sharing a code can sell very different things to very different buyers.
That combination is exactly why the field is useful for prospecting and dangerous as a sole criterion. It gives you complete, uniform coverage of every registered French business, and it gives you a coarse label. The rest of this guide is about using the first property while working around the second.
APE and NAF: one nomenclature, two names
People use NAF code and APE code interchangeably, and in practice they are the same five characters. The distinction is grammatical rather than technical. NAF is the name of the catalogue, the full list of activity classes. APE, for Activité Principale Exercée, is the name of the entry pulled from that catalogue and attached to one specific business. Asking a company for its APE code and asking for its NAF code returns the same value.
The difference worth remembering is scope. Because APE describes the principal activity, a business with several revenue lines is represented by only one of them. A software company that also runs a training arm appears under whichever activity was largest when the code was set. If your segmentation depends on the secondary activity, the code will quietly leave those companies out of your list, and no data quality check will flag it because the record is perfectly valid.
One practical consequence: a code you stored eighteen months ago is not guaranteed to match the register today, because a company can request a correction at any time. Treat it as a field to refresh on a schedule, the same way you would treat headcount or company revenue.
How to read the five characters
The structure is hierarchical, and reading it left to right is what lets you widen or narrow a segment on purpose instead of by trial and error.
| Position | Level | Example on 6201Z | What it tells you |
|---|---|---|---|
| Characters 1 to 2 | Division | 62 | Computer programming, consultancy and related activities |
| Character 3 | Group | 620 | Same, no further split at this level |
| Character 4 | Class | 6201 | Computer programming activities |
| Character 5 | Sub-class (French) | 6201Z | The national detail level, the code you will actually see |
The first two digits are the level you want for a broad sector sweep. Division 62 covers software and IT services as a whole, division 70 covers head office and management consultancy, division 47 covers retail trade. The trailing letter is French-specific and is where the register gets granular. In many classes the letter is simply Z, meaning the class was not split further, which is why so many codes end in Z and why the letter carries less information than its position suggests.
Start broad, then tighten
Build your target list at the two-digit or four-digit level first, look at how many companies come back, then narrow. Starting at the five-character level on an unfamiliar division is the fastest way to end up with a segment of eleven companies and conclude, wrongly, that the market is small.
Where to find the NAF code of a French company
For a single company, the code is printed on several documents you may already have. It appears on employee payslips, on the Kbis extract, and on the INSEE situation notice, and it is part of the public record held in the SIRENE register. If a colleague has the company's SIRET, they have the code within one lookup. None of that requires a subscription: the French business register is open data, which is why this field is unusually well covered compared with headcount or financial data.
Looking one company up for free
If all you need is a single answer, you do not need a tool at all. The register is published: the official sirene.gouv.fr service and the public company directory run by the French administration both let you search by company name or by SIREN and read the activity code straight off the record, at no cost. That is the honest answer for a one-off check, and it is the same source everything else is built on.
The problem is never one company. It is four hundred. Reading a Kbis works once and collapses immediately at list scale, and the same is true of copying values out of a register interface one row at a time. What you want is the code arriving next to every row of your sheet, alongside the legal name, the SIREN, the address, and the directors, so the sheet becomes the working surface instead of a place where you paste.
That is what the SIRET, SIREN and name enrichment feature does inside the Derrick Google Sheets sidebar. You start from a SIRET, a SIREN, or just the company name, and the row fills with identity, activity, directors and legal data plus a confidence score, at 1 credit per company. It is available on the free plan, which includes 100 credits per month, so a first segment of a hundred companies costs nothing to test. If your starting point is messier than a registration number, the sister guide on finding a company's legal name covers how to resolve the entity first.
What the code is used for beyond statistics
INSEE built the nomenclature for statistics, but French administrative life leans on it in several concrete ways, and knowing which ones tells you how much a company cares about its own code.
- Payslips. The code has to appear on employee payslips, which is why HR teams know it by heart and sales teams often do not.
- Collective bargaining agreement. The activity code is the usual starting point for identifying which convention collective applies, though it is an indication rather than a legal determination: the agreement follows the real activity, not the code.
- Occupational risk contributions. Workplace accident and occupational illness rates are set by activity, so the code has a direct effect on payroll cost.
- Eligibility for schemes and aid. Sector-restricted subsidies, tax regimes and support measures are frequently written in terms of activity codes.
The commercial takeaway is that the code is not decorative. A company whose code is wrong has a payroll problem, which means the field is maintained more carefully than most public data, which in turn is why it is a reasonable basis for building an account universe.
How to change an incorrect activity code
A code can be wrong from day one, if the activity was described loosely at registration, or become wrong later, after a pivot. Either way the fix goes through INSEE rather than through the commercial register, and it is a request rather than a form you file: the company explains its real main activity and asks for the code to be corrected. There is no fee, and the change flows back into the public register once accepted.
For a prospecting team, the useful inference is about data quality. A visibly stale code, an activity that contradicts the company's own website, is a signal in itself: it usually means a small structure with no HR function, or a business that has drifted from its original plan. Neither is disqualifying, but both are worth knowing before the first call.
NAF 2025: every code changes on 1 January 2027
This is the part that matters most if you store French company data. INSEE has adopted a new version of the nomenclature, called NAF 2025, which replaces the NAF rév. 2 in force since 2008. It was approved by Eurostat in 2024 as part of the wider European revision of activity classifications, it enters statistical production from 2026, and from 1 January 2027 it becomes the reference for assigning APE codes. The structure does not change: still four digits and a letter.
What does change is the value on the record. Every active legal entity in the SIRENE register will have its APE code modified in the transition. Throughout 2026, a company can look up its future code from its SIREN on the official sirene.gouv.fr service and ask for a correction if the automatic mapping is wrong. INSEE also publishes a correspondence table between the old and new codes.
What this means for a list you already have
Any activity code sitting in a CRM, a spreadsheet, or a segmentation rule today will need to be revalidated, and any hardcoded filter written against a NAF rév. 2 code will silently stop matching. The failure mode is the worst kind: your segments will keep returning rows, just the wrong ones. Two habits protect you. Store the code as data you refresh rather than as a rule you carve into a workflow, and map your commercial segments to a small internal list rather than to raw codes, so a nomenclature change touches one mapping table instead of every campaign.
From a NAF code to a French prospect list
The interesting direction is the reverse one. Instead of asking what a known company does, you start from an activity and ask the register for every company that matches. This is where the field stops being an attribute and becomes a sourcing method, because the SIRENE register is exhaustive: every registered French business is in it, including the ones with no website, no LinkedIn page, and no presence in any B2B database.
The Import Companies by NAF Code feature does exactly this from the sidebar. You paste an activity code, optionally filter by département, and matching French companies land in Google Sheets with name, SIREN and SIRET, directors, headcount and address. It bills 1 credit per company and is available on the free plan. Because the filter is geographic as well as sectoral, you can build a list of accounting firms in the Rhône or independent bakeries in Ille-et-Vilaine, which is precisely the kind of segment that never appears cleanly in a tool built on a social graph.
The working sequence
- Pick the division that matches your best current customer and pull it at the four-digit level.
- Filter by département if geography is part of the qualification.
- Review the headcount distribution before enriching further, because activity codes cluster micro-businesses and mid-market companies in the same bucket and you almost certainly want one and not the other.
- Drop the rows that fail your size or location criteria, while it is still free to do so.
- Only then spend credits on contact data for the accounts that survived.
The order is the whole point. Qualifying on free registry fields before paying for enrichment is what keeps the cost per usable lead low, whether you are running fifty rows or fifty thousand.
Mapping French activity codes to NACE and SIC
If your CRM already segments on an international standard, you will need to reconcile two systems rather than replace one. The good news is that the French nomenclature was built on the European one. The first four characters align with NACE, the EU classification, so a French 6201 and a European 6201 describe the same class. Only the fifth character, the letter, is national. Converting a French list to NACE is therefore a matter of dropping the final letter, not of maintaining a mapping table.
SIC and NAICS are a different story. They are North American systems built on different boundaries, so there is no clean one-to-one conversion and any crosswalk you find is an approximation. If your pipeline is mostly US and you are adding France, the pragmatic approach is to keep the French code as its own field rather than forcing it into an existing picklist, and to map upward to a small set of internal segments that both systems can feed. Our guide on company industry lookup goes into how the international classifications behave.
For teams working from a spreadsheet, that mapping layer does not need to be a project. A column that groups two-digit divisions into your five or six commercial segments is enough, and if the grouping logic is fuzzy, Ask Claude can classify each row against your own segment definitions at 2 credits per line on a paid plan.
What a NAF code will never tell you
Three limits are worth stating plainly, because each one produces a specific bad list.
It does not tell you what the company sells today. The code is set at registration and updated on request, so a business that pivoted three years ago may still carry its original activity. Companies that changed direction without filing a correction are invisible to a purely code-based filter.
It does not tell you size, health, or intent. A code groups a two-person consultancy and a nine-hundred-person firm under identical five characters. Headcount, head office location, and financial data are separate fields, and none of them can be inferred from the activity. Segmenting on activity alone is the most common reason a French list looks large and converts badly.
It does not tell you who to contact. The register gives you the legal entity and its directors, not the person who owns the budget for your product. Once the account list is qualified, resolving the right contact is a separate step: Find a company's people lists current and former staff, optionally filtered by job function, at 1 credit per person on a paid plan, and the guide on finding a company's CEO covers the decision-maker case.
Keeping French company data current in Google Sheets
Registry data decays more slowly than contact data, but it does decay, and the 2027 transition guarantees a step change on top of the normal drift. Companies change activity, move their head office, open and close establishments, and enter or leave insolvency proceedings. A list built in January and worked in June will contain rows that are no longer worth a call, and the failure mode is silent: nothing in the sheet looks wrong.
The habit that fixes it is refreshing the registry columns on a schedule rather than rebuilding the list. Because Derrick runs as a sidebar inside Google Sheets rather than as a separate application, re-running the enrichment over an existing range is a normal operation, not an export and re-import cycle. The same holds if you would rather not touch a spreadsheet at all: the Derrick MCP server exposes the same enrichment to Claude and other MCP-compatible assistants, from €20 per month, so the refresh can happen inside an agent workflow.
Whatever the surface, the sequence stays the same and it scales in both directions. Twenty companies for a founder-led sales test and twenty thousand for a full market map run through the same lookups, and only the credit count changes. If you want the wider view of what to gather on an account before the first call, the guide on researching a company for sales is the companion piece to this one.
Getting started
Pick one activity code that matches your best current customer, pull it at the four-digit level with a département filter, and look at what comes back before you enrich anything. If the segment is credible, qualify on the free registry fields, then spend credits on contacts. If it is not, widen to the two-digit division and try again. The whole loop runs on the free plan's 100 credits per month, which is enough to validate a segment before committing to it. And while you are in there, note which of your stored codes will need revalidating before 2027.
Frequently asked questions
What is a NAF code?
What is the difference between a NAF code and an APE code?
Where can I find the NAF code of a French company?
What changes with NAF 2025 on 1 January 2027?
Can I build a prospect list from a NAF code?
Does a NAF code map to NACE, SIC or NAICS?
Is a NAF code enough to qualify a prospect?
How much does it cost to enrich French companies with Derrick?
Continue exploring this cluster
Start enriching your sheet in 30 seconds
Free for 100 credits/month. No credit card.
Install Derrick free →