EUIPO EU Trademark Scraper: Owner, Nice Class & Status avatar

EUIPO EU Trademark Scraper: Owner, Nice Class & Status

Pricing

from $12.75 / 1,000 results

Go to Apify Store
EUIPO EU Trademark Scraper: Owner, Nice Class & Status

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Share

EUIPO EU Trademark Scraper: Owner, Nice Class & Status

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
searchQueriesstring[]yes*["apple"]Brand names or mark texts to search. Each value runs its own search. *Required unless applicationNumbers is given.
applicationNumbersstring[]no[]Look up specific EUTM records by application or registration number, for example 000218990.
matchModeenumnoCHow the query matches mark text: C contains, S starts with, E exact, F fuzzy.
statusstring[]no(all)Keep only these statuses, for example Registered, Filed, Application opposed, Expired.
niceClassesstring[]no(all)Keep only marks covering these Nice class numbers (1-45), for example 9, 35, 42.
markTypesstring[]no(all)Keep only these mark types, for example Word, Figurative, Combined, 3-D, Sound.
applicantNamestringno(empty)Keep only marks whose owner name contains this text, for example Nestle.
filingDateFromstringno(empty)Keep only marks filed on or after this date (YYYY-MM-DD).
filingDateTostringno(empty)Keep only marks filed on or before this date (YYYY-MM-DD).
registrationDateFromstringno(empty)Keep only marks registered on or after this date (YYYY-MM-DD).
registrationDateTostringno(empty)Keep only marks registered on or before this date (YYYY-MM-DD).
enrichDetailsbooleannotrueFetch the full record (owner address, representative contact, goods and services, image, opposition). Turn off for a faster, lighter run.
maxTrademarksintegerno10Maximum trademarks to return across all queries. Free Apify plans are capped at 10 per run.
withGoodsSummarybooleannofalsePaid AI add-on. Adds aiGoodsSummary. Billed per mark summarised. Requires a paid Apify plan.
withClassifybooleannofalsePaid 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.

FieldTypeDescription
source / officestringAlways EUIPO.
officeCodestringOffice code, EM for EUIPO.
st13stringST.13 unique trademark identifier.
applicationNumberstringApplication number.
registrationNumberstringRegistration number, or null if not yet registered.
markTextstringThe trademark text or brand name.
markTypestringMark type, for example Word, Figurative, Combined.
markKindstringMark kind, for example Individual, Collective.
basisstringLegal basis, for example EUTM.
statusstringLegal status, for example Registered, Filed, Expired.
distinctivenessstringAcquired distinctiveness indicator.
niceClassesinteger[]Nice classification class numbers.
niceClassCountintegerNumber of Nice classes.
applicantNamestringOwner (applicant) name.
applicantNamesstring[]All owner names when multiple.
applicantOrganizationstringOwner organization name.
applicantLegalFormstringOwner legal form, or null.
applicantNationalitystringOwner nationality (country code).
applicantStreet / applicantCity / applicantPostcode / applicantState / applicantCountrystringParsed owner address components.
applicantAddressstringOwner full address (single line).
applicantEmail / applicantPhonestringOwner contact details when published, else null.
representativeNamestringLegal representative name.
representativeEmail / representativePhonestringRepresentative contact details when published, else null.
representativeCountry / representativeCitystringRepresentative location.
representativeAddressstringRepresentative full address.
filingDatestringFiling date.
registrationDatestringRegistration date, or null.
expiryDatestringExpiry date.
oppositionPeriodStart / oppositionPeriodEnd / oppositionDeadlinestringOpposition window dates.
opposedbooleantrue if an opposition was filed.
oppositionCountintegerNumber of oppositions.
oppositionGroundsstringGrounds of opposition, or null.
goodsServicesstringFull goods and services listing (can be several thousand characters).
goodsServicesClassesinteger[]Nice classes covered by the goods and services.
imageUrlstringURL of the mark image (figurative marks).
thumbnailUrlstringURL of the mark thumbnail.
viennaClassificationstring[]Vienna figurative-element classification codes.
seniorityCountintegerNumber of seniority claims.
priorityCountintegerNumber of priority claims.
protectionTerritoriesstring[]Territory codes where the mark is protected.
detailUrlstringLink to the mark on TMview.
querystringThe input query that produced this record.
aiGoodsSummarystringPlain-English summary of the goods and services. Present only with withGoodsSummary.
aiMarketSectorstringNormalized market sector. Present only with withClassify.
aiBrandTagsstring[]Searchable brand/sector tags. Present only with withClassify.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). See the pricing tab for the current per-result price.
  • AI add-ons billed separately. withGoodsSummary and withClassify each 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.