EUIPO EU Trademark Scraper: Owner, Nice Class & Status
Pricing
from $12.75 / 1,000 results
EUIPO EU Trademark Scraper: Owner, Nice Class & Status
Search EU trade marks (EUTM) from the EUIPO register: mark text, application and registration numbers, status, Nice classes, owner company and address, representative contacts, dates, opposition and image. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Categories
Share
EUIPO EU Trademark Scraper: Owner, Nice Class & Status
Here is one real result, with every field the actor returns (detail enrichment and both AI add-ons enabled):
{"source": "EUIPO","office": "EUIPO","officeCode": "EM","st13": "EM500000005021423","applicationNumber": "005021423","registrationNumber": "005021423","markText": "Nintendo","markType": "Figurative","markKind": "Individual","basis": "EUTM","status": "Registered","distinctiveness": "No","niceClasses": [9, 16, 28, 38, 41],"niceClassCount": 5,"applicantName": "Nintendo Co., Ltd.","applicantNames": ["Nintendo Co., Ltd."],"applicantOrganization": "Nintendo Co., Ltd.","applicantLegalForm": null,"applicantNationality": "JP","applicantStreet": "11-1 Hokotate-cho, Kamitoba","applicantCity": "Minami-ku, Kyoto-shi, Kyoto","applicantPostcode": "601-8501","applicantState": null,"applicantCountry": "JP","applicantAddress": "Nintendo Co., Ltd. 11-1 Hokotate-cho, Kamitoba Minami-ku, Kyoto-shi, Kyoto 601-8501 JAPÓN","applicantEmail": null,"applicantPhone": null,"representativeName": "GRÜNECKER PATENT- UND RECHTSANWÄLTE PARTG MBB","representativeEmail": null,"representativePhone": null,"representativeCountry": "DE","representativeCity": "München","representativeAddress": "Grünecker Patent- und Rechtsanwälte PartG mbB Leopoldstr. 4 D-80802 München ALEMANIA","filingDate": "2006-03-27T12:00:00.000Z","registrationDate": "2007-12-20T12:00:00.000Z","expiryDate": "2036-03-27T12:00:00.000Z","oppositionPeriodStart": "2007-06-11T12:00:00.000Z","oppositionPeriodEnd": "2007-09-11T12:00:00.000Z","oppositionDeadline": "2007-09-11T12:00:00.000Z","opposed": false,"oppositionCount": 0,"oppositionGrounds": null,"goodsServices": "Cl.9: Downloadable programs, computer programs and other programs for arcade video game machines; ... (full listing, ~4000 chars, trimmed here)","goodsServicesClasses": [9, 16, 28, 38, 41],"imageUrl": "https://euipo.europa.eu/copla/image/CJ4JX4FZVCC523YA2TMALSKFLHKRPXMSZ6LOXUM5K37TBJE5ZCM52XMVTYU6FSB7UNI6LJNO5BOB4","thumbnailUrl": "https://euipo.europa.eu/copla/thumbnail/GGIVU4WGEGD2LJBLYJY6ACUKPZFXGD4B6MWNXYL5ZAH6AYIL5ZEHRDQ6YGBAVL55WULGNYAC3D3Y2","viennaClassification": ["25.03.03"],"seniorityCount": 0,"priorityCount": 0,"protectionTerritories": ["DE", "BE", "FR", "IT", "ES", "AT", "NL", "PL", "... 21 more EU territories"],"detailUrl": "https://www.tmdn.org/tmview/#/tmview/detail/EM500000005021423","query": "nintendo","aiGoodsSummary": "Nintendo offers a wide range of electronic and gaming products, including video game software, hardware, and accessories for arcade and consumer video games, as well as various electronic devices and equipment.","aiMarketSector": "Video Games and Entertainment","aiBrandTags": ["video games", "gaming", "entertainment", "software", "technology", "consumer electronics"],"observedAt": "2026-08-14T07:44:53.208Z"}
The most complete EUIPO EU trademark scraper available. It returns every field the EUIPO / TMview trademark register exposes, including the owner's full address, representative, Nice and Vienna classes, goods and services, opposition status and mark image, plus optional AI goods summary and market classification, and gives you ten filters to target exactly the trademarks you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the EUIPO EU trademark (EUTM) register via the official TMview service, applies the filters you pass as input, and writes one normalized record per trademark to the run's dataset. With detail enrichment on (the default) each record carries the owner's full name and address, legal representative, Nice and Vienna classes, the goods and services listing, opposition status and the figurative mark image. Missing source values are returned as null and never invented.
Every result is tagged with the query that produced it. Optional paid AI add-ons condense the goods and services listing into plain English and classify each mark into a market sector with searchable tags.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 registered EU trademarks matching "nintendo" with full owner and goods detail.
{"searchQueries": ["nintendo"],"matchMode": "C","status": ["Registered"],"enrichDetails": true,"maxTrademarks": 10}
You can also look up specific marks by number with applicationNumbers. Free plans return up to 10 trademarks per run.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchQueries | string[] | yes* | ["apple"] | Brand names or mark texts to search. Each value runs its own search. *Required unless applicationNumbers is given. |
applicationNumbers | string[] | no | [] | Look up specific EUTM records by application or registration number, for example 000218990. |
matchMode | enum | no | C | How the query matches mark text: C contains, S starts with, E exact, F fuzzy. |
status | string[] | no | (all) | Keep only these statuses, for example Registered, Filed, Application opposed, Expired. |
niceClasses | string[] | no | (all) | Keep only marks covering these Nice class numbers (1-45), for example 9, 35, 42. |
markTypes | string[] | no | (all) | Keep only these mark types, for example Word, Figurative, Combined, 3-D, Sound. |
applicantName | string | no | (empty) | Keep only marks whose owner name contains this text, for example Nestle. |
filingDateFrom | string | no | (empty) | Keep only marks filed on or after this date (YYYY-MM-DD). |
filingDateTo | string | no | (empty) | Keep only marks filed on or before this date (YYYY-MM-DD). |
registrationDateFrom | string | no | (empty) | Keep only marks registered on or after this date (YYYY-MM-DD). |
registrationDateTo | string | no | (empty) | Keep only marks registered on or before this date (YYYY-MM-DD). |
enrichDetails | boolean | no | true | Fetch the full record (owner address, representative contact, goods and services, image, opposition). Turn off for a faster, lighter run. |
maxTrademarks | integer | no | 10 | Maximum trademarks to return across all queries. Free Apify plans are capped at 10 per run. |
withGoodsSummary | boolean | no | false | Paid AI add-on. Adds aiGoodsSummary. Billed per mark summarised. Requires a paid Apify plan. |
withClassify | boolean | no | false | Paid AI add-on. Adds aiMarketSector and aiBrandTags. Billed per mark classified. Requires a paid Apify plan. |
Filters combine with logical AND.
Output reference
One dataset item per trademark. Types: string, integer, boolean, integer[], string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
source / office | string | Always EUIPO. |
officeCode | string | Office code, EM for EUIPO. |
st13 | string | ST.13 unique trademark identifier. |
applicationNumber | string | Application number. |
registrationNumber | string | Registration number, or null if not yet registered. |
markText | string | The trademark text or brand name. |
markType | string | Mark type, for example Word, Figurative, Combined. |
markKind | string | Mark kind, for example Individual, Collective. |
basis | string | Legal basis, for example EUTM. |
status | string | Legal status, for example Registered, Filed, Expired. |
distinctiveness | string | Acquired distinctiveness indicator. |
niceClasses | integer[] | Nice classification class numbers. |
niceClassCount | integer | Number of Nice classes. |
applicantName | string | Owner (applicant) name. |
applicantNames | string[] | All owner names when multiple. |
applicantOrganization | string | Owner organization name. |
applicantLegalForm | string | Owner legal form, or null. |
applicantNationality | string | Owner nationality (country code). |
applicantStreet / applicantCity / applicantPostcode / applicantState / applicantCountry | string | Parsed owner address components. |
applicantAddress | string | Owner full address (single line). |
applicantEmail / applicantPhone | string | Owner contact details when published, else null. |
representativeName | string | Legal representative name. |
representativeEmail / representativePhone | string | Representative contact details when published, else null. |
representativeCountry / representativeCity | string | Representative location. |
representativeAddress | string | Representative full address. |
filingDate | string | Filing date. |
registrationDate | string | Registration date, or null. |
expiryDate | string | Expiry date. |
oppositionPeriodStart / oppositionPeriodEnd / oppositionDeadline | string | Opposition window dates. |
opposed | boolean | true if an opposition was filed. |
oppositionCount | integer | Number of oppositions. |
oppositionGrounds | string | Grounds of opposition, or null. |
goodsServices | string | Full goods and services listing (can be several thousand characters). |
goodsServicesClasses | integer[] | Nice classes covered by the goods and services. |
imageUrl | string | URL of the mark image (figurative marks). |
thumbnailUrl | string | URL of the mark thumbnail. |
viennaClassification | string[] | Vienna figurative-element classification codes. |
seniorityCount | integer | Number of seniority claims. |
priorityCount | integer | Number of priority claims. |
protectionTerritories | string[] | Territory codes where the mark is protected. |
detailUrl | string | Link to the mark on TMview. |
query | string | The input query that produced this record. |
aiGoodsSummary | string | Plain-English summary of the goods and services. Present only with withGoodsSummary. |
aiMarketSector | string | Normalized market sector. Present only with withClassify. |
aiBrandTags | string[] | Searchable brand/sector tags. Present only with withClassify. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"searchQueries":["nintendo"],"status":["Registered"],"withGoodsSummary":true,"withClassify":true}). The full record is shown at the top of this page; the multi-thousand-character goodsServices listing and the protection territory list are trimmed there for brevity, with all shown values unmodified.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~euipo-trademarks-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"searchQueries":["apple"],"niceClasses":["9"],"status":["Registered"],"maxTrademarks":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~euipo-trademarks-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"applicantName":"Nestle","maxTrademarks":100}'
Apify CLI:
apify call scrapers_lat/euipo-trademarks-scraper \--input '{"applicationNumbers":["005021423"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per trademark returned (
resultevent). See the pricing tab for the current per-result price. - AI add-ons billed separately.
withGoodsSummaryandwithClassifyeach charge their own event and only when the AI output is produced. They require a paid Apify plan and are disabled for free users. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 trademarks per run. Upgrade for higher
maxTrademarks.
FAQ and troubleshooting
A run returned 0 records. Why?
The query and filters matched nothing. Try a broader matchMode (for example C contains or F fuzzy), remove a status or Nice-class filter, or widen the date range. Zero-result runs are not charged.
How do I look up one specific mark?
Put its number in applicationNumbers, for example 005021423. The full record is returned without a text search.
Why is the goods and services listing or owner address missing?
Those fields come from the detailed record. Keep enrichDetails on (the default). With it off, only the lightweight search fields are returned.
How do I filter by industry?
Use niceClasses for the official goods/services classification (for example 9 for software, 35 for advertising, 42 for tech services), optionally combined with markTypes.
How do I check whether a mark was opposed?
The opposed boolean and oppositionCount show whether oppositions were filed; the opposition window dates and any oppositionGrounds are also returned.
Is this an official EUIPO tool? No. This actor is independent and has no affiliation with EUIPO or TMview. It reads only data that is publicly available in the EU trademark register. Use it in accordance with the EUIPO terms of use.
Related scrapers
- EUIPO Designs Scraper: EU Registered Community Designs with owner and Locarno classes.
- USPTO Trademarks Scraper: US trademark register records.
- USPTO TTAB Proceedings Scraper: US trademark trial and appeal board proceedings.
- USPTO Patents Scraper: US patent grants and applications.
- Canada CIPO IP Scraper: Canadian trademarks and patents.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US, European and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with EUIPO or TMview. Accesses only publicly available EU trademark data. Use in accordance with the EUIPO terms of use.
