What Are CPV Codes and How to Use Them to Find Tenders
July 21, 2026 · 7 min read
Picture a heating contractor in Porto who has given up on public tenders. He searched TED every Monday for "boiler", "HVAC", and "climatização", scrolled a few pages, found mostly noise, and closed the tab. Three months later he learned that a regional hospital had tendered a heating plant upgrade worth several hundred thousand euros. The notice never used the word "boiler". It used a number: 45331100. That number is a CPV code, and not knowing it cost him a real shot at the contract.
If you sell to government buyers in Europe, CPV codes are the single most important thing you are probably ignoring. Here is how they work and how to turn them into a reliable stream of relevant tenders.
What a CPV code actually is
CPV stands for Common Procurement Vocabulary. It is the standardised classification system the European Union uses to describe the subject of a public contract. Every contracting authority, from a town hall in Slovenia to a national rail operator in Spain, is required to tag its tender notices with at least one CPV code so that the same product or service is described the same way regardless of language.
This solves a real problem. A buyer in Lisbon writes "ventilador", a buyer in Paris writes "ventilateur", a buyer in Warsaw writes something else again. Keyword search across 24 official EU languages is hopeless. The CPV code is the common thread that ties them together.
Each code is an 8-digit number plus a check digit (the ninth digit, separated by a hyphen, is just a control character). The digits are hierarchical, and that structure is the whole point:
Read left to right, a code goes from a broad sector to a precise deliverable. That hierarchy is what lets you search broad or narrow on purpose, instead of guessing keywords.
How to find your CPV codes
Do not try to memorise the list. There are over 9,000 codes. Instead, build a short, deliberate set that matches what you actually sell.
A practical method:
1. Start from a notice you would have wanted. Find one or two past tenders that were a perfect fit for your business. On TED or your national portal, open the notice and read the CPV code it used. Buyers tell you exactly how they classify your work. 2. Browse the official tree. The European Commission publishes the full CPV in the SIMAP section of its site, and the codes are searchable inside TED itself. Type a plain word ("oxygen", "catering", "asphalt") and the tool returns matching codes with descriptions. 3. Go one level up and one level down. If your sharpest match is 33157400 (medical breathing devices), check the parent 33157000 and siblings too. Some buyers tag loosely. A code that is one level broader catches notices a too-specific filter would miss. 4. Keep the list tight. Most SMEs need somewhere between 5 and 20 codes, not 200. A bloated list reintroduces the noise you were trying to escape.
Write the final set down. This list becomes the backbone of every search and every alert you set up.
Using CPV codes on TED and national portals
TED (Tenders Electronic Daily) is the EU's official journal supplement for public procurement. It publishes notices above the EU thresholds, which for most goods and services sit roughly in the €140,000 to €215,000 range for central and sub-central authorities, and over €5 million for public works. Below those thresholds, tenders are published nationally rather than on TED.
On the TED website, use the advanced search and filter by CPV code rather than free text. Combine it with country and a publication date range, and you get a clean list of in-scope contracts. You can save the query and, on the current TED platform, turn it into an email alert.
The same logic applies on national portals, which is where most below-threshold business actually lives:
The workflow is identical everywhere: filter by your code list first, then read titles. You stop scrolling past contracts in languages you do not speak, because the code did the translation for you.
A worked example
Say you supply medical gas pipeline systems to hospitals. Your core CPV set might look like this:
Filter TED and the Spanish, French, and Portuguese portals on those five codes, set the country to a handful of target markets, and you have replaced "search five portals in three languages every week" with one structured query. A hospital in Seville tendering an oxygen plant will surface even though its notice is written entirely in Spanish, because 45333000 means the same thing in Seville as it does in Coimbra.
Where CPV codes fall short, and how to close the gap
CPV is powerful but blunt. Two limits matter:
This is where a CPV-aware feed earns its place. Instead of running the same searches by hand, you define your codes and target countries once, and a platform watches TED and the national portals continuously, matches each new notice against your profile, and scores it for fit. You open a single daily list of tenders that already belong to you, ranked by relevance, with the deadline attached. The classification system was built to make your market findable. A daily scored feed is simply the tool that finds it for you, every morning, without the open tab and the Monday scroll.
Share this article