# UK Trademark Scraper - UK IPO Register, Owners & Journal (`scrapersdelight/uk-trademark-scraper`) Actor

Search the UK trade mark register (UK IPO) by mark, owner, number, Nice class, status or date: mark text, status, filing, registration and renewal dates, classes, goods and services, owner. Plus the IPO's weekly Trade Marks Journal with representatives, addresses and logos. No login.

- **URL**: https://apify.com/scrapersdelight/uk-trademark-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Business, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.90 / 1,000 trade marks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does UK Trademark Scraper do?

**UK Trademark Scraper** searches the UK trade mark register kept by the UK Intellectual Property Office (UK IPO / UKIPO) and returns one row per UK trade mark: number, mark text, status, type, Nice classes, goods and services, owner, filing, registration and renewal dates, opposition window and links. A second mode reads the IPO's weekly **Trade Marks Journal**, which lists every newly published application with its representative (attorney firm) and postal address. Brand owners, IP attorneys, clearance teams and agencies use it for UK clearance searches, brand watches and prospect lists.

UK trademark search · UKIPO trade mark scraper · UK IPO register API · Trade Marks Journal watch

- **The whole UK register:** 3,674,419 marks on 2026-10-16 (2,325,043 registered, 72,398 pending, 1,265,253 expired, 11,725 ended), by mark text, owner, number, class, status, type, Vienna code and dates.
- **Goods and services on every mark:** the full specification per Nice class, included in the price.
- **New applications with their representatives:** the weekly journal gives each mark's attorney firm with full address and postcode, applicant ids, priority claims, series, colour claims and the mark image.
- **Past the 10,000-result limit:** large searches are split by filing date, so "every mark in class 25 filed this year" is reachable. A completeness line per search compares rows delivered with the register's own total.
- **Brexit clones labelled:** UK009… and UK008… numbers (comparable marks created from EU trade marks and EU-designating international registrations) carry their origin and the EU / WIPO number.
- **Monitor mode:** schedule it and receive only new marks and status or date changes.
- **No login, no API key, no browser.** Pay only for the marks delivered.

### What data can you get from the UK trade mark register?

<table>
<tr><td>🔢 Trade mark number (`trademarkNumber`)</td><td>🔤 Mark text</td><td>🚦 Status (registered, pending, expired, ended)</td></tr>
<tr><td>🖼️ Mark type (word, figurative, 3D, colour…)</td><td>🗂️ Nice classes + count</td><td>📜 Goods and services per class</td></tr>
<tr><td>🏢 Owner / applicant name(s)</td><td>🆔 IPO applicant ids (journal)</td><td>📅 Filing date</td></tr>
<tr><td>✅ Registration date</td><td>🔁 Renewal date + days until renewal</td><td>⚖️ Opposition period start / end, open now?</td></tr>
<tr><td>👔 Representative (attorney firm)</td><td>📮 Representative address, city, postcode, country</td><td>🙋 Filed without a representative?</td></tr>
<tr><td>📰 Journal issue + publication date</td><td>🌍 Origin: UK, EU clone, IR clone, IR designating the UK</td><td>🧾 Priority claims (country, date, number)</td></tr>
<tr><td>🎨 Colour claim, description, disclaimer</td><td>🧩 Series count</td><td>🖼️ Mark image (journal)</td></tr>
<tr><td>🔣 Vienna codes (logo elements)</td><td>🔗 IPO page, TMview and journal links</td><td>🔄 Monitor change type + previous status</td></tr>
</table>

### How to scrape UK trade marks with UK Trademark Scraper

1. [Create a free Apify account](https://console.apify.com/sign-up) (the free plan includes monthly credit).
2. Open **UK Trademark Scraper** and choose **What to read**: the UK register search or the Trade Marks Journal.
3. Type a mark (e.g. `nike`), an owner (e.g. `Diageo`) or a number (e.g. `UK00003904654`), and add any filters.
4. Set **Max results** and click **Start**.
5. Download the rows as JSON, CSV, Excel or XML, or send them to Google Sheets, Make, Zapier or your API.

### ⬇️ Input

| Parameter | Type | Description |
|---|---|---|
| `mode` | string | `register` (default): search the UK register. `journal`: the IPO's weekly Trade Marks Journal. |
| `searchQueries` | array | Marks to search, e.g. `["nike", "brewdog"]`. In journal mode: mark text filter. |
| `matchMode` | string | `contains` (default), `exact`, `beginsWith`, `word`, `fuzzy`. For "nike": 249 / 57 / 121 / 99 / 3,365 marks. |
| `ownerNames` | array | Owner search, alone or with a mark, e.g. `["Diageo"]` (1,301 live marks). Journal: applicant contains. |
| `trademarkNumbers` | array | `UK00003904654`, `3904654`, `UK00912101689`; journal mode also `WO0000001939971`. |
| `niceClasses` | array | Classes 1-45, any of them, e.g. `["25", "35"]`. |
| `statuses` | array | `Registered`, `Filed`, `Expired`, `Ended` (or `live` / `dead`). Register only. |
| `markTypes` | array | `Word`, `Figurative`, `3D shape`, `Colour`, `Sound`, … |
| `viennaCodes` | array | Logo element codes, e.g. `27.05.21`. Register only. |
| `filingDateFrom`, `filingDateTo`, `filedInLastDays` | string / integer | Filing date window; `filedInLastDays` is a rolling window for schedules. |
| `registrationDateFrom`, `registrationDateTo` | string | Registration date window. Register only. |
| `openToOppositionOnly` | boolean | Marks whose opposition period runs today (27,853 on 2026-10-16). |
| `sortBy` | string | `relevance`, `newest`, `oldest`, `name`. Register only. |
| `journalWeeks` | integer | Journal mode: latest N issues (default 1). The IPO lists about a year. |
| `journalIssues` | array | Journal mode: specific issues, e.g. `["2026/042"]`. |
| `origin` | string | Journal mode: `all`, `uk` (UK applications), `international` (IRs designating the UK). |
| `representation` | string | Journal mode: `any`, `with` a representative, `without` (applicant filed alone). |
| `representativeContains` | array | Journal mode: representative name or address contains, e.g. `["Marks & Clerk"]`, `["EC4M"]`. |
| `goodsServicesContains` | array | Journal mode: goods and services text contains, e.g. `["software"]`. |
| `includeGoodsAndServices` | boolean | Register: read each mark's goods and services (default on). |
| `includeImages` | boolean | Journal: save each mark image the journal carries (default on). |
| `includeIpoRecord` | boolean | Also read the IPO's own page per UK mark: owner postal address, country of incorporation, company number, representative + address, publications, image. About 1.2 s per mark. Default off. |
| `monitorMode`, `monitorKey` | boolean / string | Only marks not delivered by an earlier run of the same search, or whose status or dates changed. |
| `maxResults` | integer | Total cap (default 100; 0 = no limit). |
| `maxResultsPerSearch` | integer | Cap per search or per journal issue. |
| `compact` | boolean | Core fields only, for spreadsheets and AI agents. |
| `proxyConfiguration` | object | Optional. Default: direct, with Apify residential proxy (GB) as a fallback for the register search. |

#### Input JSON

```json
{
  "mode": "register",
  "searchQueries": ["nike"],
  "niceClasses": ["25"],
  "statuses": ["live"],
  "maxResults": 100
}
```

#### A weekly attorney prospect list from the journal

```json
{
  "mode": "journal",
  "journalWeeks": 1,
  "origin": "uk",
  "representation": "without",
  "niceClasses": ["9", "42"],
  "maxResults": 0
}
```

#### Clearance tips

- Run the same mark with `contains` and `fuzzy`: fuzzy finds spelling variants ("nike" 249 vs 3,365 marks).
- Add `niceClasses` for the classes you will file in; a mark covering any of them is kept.
- Set `statuses` to `live` to drop expired and ended marks.

### ⬆️ Output

A register row (real, 2026-10-16, goods and services shortened):

```json
{
  "source": "register",
  "trademarkNumber": "UK00003904654",
  "markText": "NIKE",
  "status": "Registered",
  "markType": "Word",
  "niceClasses": [3, 7, 10, 12, 14, 21, 26, 27, 41, 42],
  "goodsAndServicesText": "Class 3: Antiperspirant and deodorant soap; perfume; ... | Class 42: Non-downloadable computer software ...",
  "ownerName": "NIKE Innovate C.V.",
  "filingDate": "2023-04-25",
  "registrationDate": "2023-09-22",
  "renewalDate": "2033-04-25",
  "oppositionPeriodEnd": "2023-09-07",
  "origin": "UK application",
  "ipoUrl": "https://trademarks.ipo.gov.uk/ipo-tmcase/page/Results/1/UK00003904654"
}
```

A journal row (real, issue 2026/042):

```json
{
  "source": "journal",
  "trademarkNumber": "UK00004451928",
  "markText": "ADO AQS",
  "markType": "Figurative",
  "niceClasses": [12],
  "ownerName": "Shenzhen UMI Technology Co., Ltd.",
  "ownerIds": ["2290946"],
  "representativeName": "Bayer & Norton Business Consultant Ltd",
  "representativeAddress": "71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, UNITED KINGDOM",
  "representativePostcode": "WC2H 9JQ",
  "filingDate": "2026-09-28",
  "journalNumber": "2026/042",
  "publicationDate": "2026-10-16",
  "oppositionPeriodEnd": "2026-12-16",
  "oppositionDaysLeft": 60,
  "imageUrl": "https://api.apify.com/v2/key-value-stores/<run store>/records/image-UK00004451928-1.jpg"
}
```

With `includeIpoRecord` on, a row also carries the owner's address and incorporation (real, UK00003904654): `ownerAddress` "One Bowerman Drive, Beaverton, Oregon, 97005-6453, United States of America", `ownerIncorporationCountry` "United States of America", `representativeName` "K\&L Gates LLP", `representativeAddress` "One New Change, London, EC4M 9AF, United Kingdom", `journalNumber` "2023/027", `ipoStatus` "Registered".

#### Fields and measured fill

Register: "london" search, 1,000 rows. Journal: issue 2026/042, all 3,641 rows. IPO record: 53 case pages.

| Field | Meaning | Register | Journal |
|---|---|---|---|
| `trademarkNumber`, `markText`, `status`, `markType`, `niceClasses` | The mark (journal: 8% are pure logos with no word) | 100% | 100% / 92% |
| `goodsAndServices`, `goodsAndServicesText` | Specification per class | 100% (998 of 1,000 have terms) | 100% |
| `ownerName`, `ownerNames` | Owner / applicant | 100% | 100% |
| `ownerIds` | IPO applicant ids | with IPO record | 100% |
| `filingDate` | Filing date | 100% | 100% |
| `registrationDate`, `renewalDate` | Entry in register, next renewal | 97% (pending marks have none) | – |
| `oppositionPeriodStart` / `End` | Opposition window (journal: publication + 2 months, + 3 if extended) | 83% | 100% |
| `representativeName`, `representativeAddress` | Attorney firm + address | with IPO record (70% of 10) | 46% (54% filed without one) |
| `representativePostcode`, `representativeCity` | UK-format address parts | – | 32% |
| `priorityClaims`, `designationDate`, `originOffice` | Priority; IR designation | – | 15% |
| `origin`, `originNumber` | UK / EU clone / IR clone / IR designating the UK | 100% / 12% | 100% / 15% |
| `viennaCodes` | Logo element codes | 44% | – |
| `seriesCount`, `markDescription`, `colourClaim`, `disclaimer` | Mark details | with IPO record | 5% / 1.5% / 1.5% / 0.8% |
| `imageUrl`, `imageUrls` | Mark image | with IPO record (12 of 53) | 39% |
| `ownerAddress`, `ownerCountry`, `ownerIncorporationCountry`, `ownerCompanyNumber` | IPO record only | 53 of 53 / 52 / 35 / 1 | with IPO record |
| `ipoUrl`, `tmviewUrl`, `journalUrl` | Links | 98% / 100% / – | 85% / 85% / 100% |

`ipoUrl` is empty for divided applications (e.g. `UK0002434325A`) and international registrations, which have no IPO case page link.

### Use cases

- 🛡️ **Brand clearance**: check a new name against every live UK mark in your classes before filing.
- 👀 **Brand watch**: a weekly scheduled journal run with your mark in `searchQueries` and `openToOppositionOnly`; you have two months to oppose.
- ⚖️ **IP law firms**: weekly lists of applicants who filed without a representative, with their classes and goods.
- 🏢 **Competitor monitoring**: every mark an owner files, as soon as it is published.
- 🔁 **Renewal services**: live marks whose `renewalDueWithin6Months` is true.
- 📊 **Market research**: who files in a class, how many, from which countries.

### How much does it cost to scrape UK trade marks?

Pay per result, no start fee: **$0.0009 per trade mark** ($0.90 per 1,000), goods and services, images and the IPO record included. You pay only for rows in the dataset; empty searches and numbers that do not exist cost nothing.

| Run | Rows | Cost |
|---|---|---|
| Demo (prefill: "nike", 5 marks) | 5 | $0.0045 |
| One clearance search | 100 | $0.09 |
| Large class search | 1,000 | $0.90 |
| One full journal issue | ~3,600 | ~$3.28 |

### Integrations, API, scheduling & MCP

- **Schedules**: save a task and run it weekly (journals publish on Fridays) with **Monitor mode** on to receive only new and changed marks.
- **Webhooks and apps**: send results to Make, Zapier, n8n, Google Sheets, Slack or your own endpoint when a run finishes.
- **API**: start runs and read the dataset with the Apify API ([Python](https://apify.com/scrapersdelight/uk-trademark-scraper/api/python), [JavaScript](https://apify.com/scrapersdelight/uk-trademark-scraper/api/javascript)).
- **MCP**: use UK Trademark Scraper from an AI agent through the [Apify MCP server](https://apify.com/scrapersdelight/uk-trademark-scraper/api/mcp).

### More trade mark and UK company scrapers

| Scraper | Use it when |
|---|---|
| 🇪🇺 [EUIPO Trademark Scraper](https://apify.com/scrapersdelight/euipo-trademark-scraper) | You also need EU trade marks (since Brexit an EU mark does not cover the UK) |
| 🇺🇸 [USPTO Trademark Scraper](https://apify.com/topapi/uspto-trademark-scraper) | You need US marks |
| 🏛️ [UK New Company Leads - Companies House](https://apify.com/scrapersdelight/companies-house-incorporations-scraper) | You want the companies behind new filings |
| 🧾 [UK Trading Disclosure Scraper](https://apify.com/scrapersdelight/uk-trading-disclosures-contact-scraper) | You need a UK company's number, VAT and contacts from its website |
| 🏦 [FCA Register Scraper](https://apify.com/scrapersdelight/fca-register-firms-scraper) | You work with UK financial firms |

### Limits & empty runs

- One register query returns at most 10,000 marks; bigger searches are split by filing date automatically. Marks with no filing date cannot be reached that way and are counted in `RUN_SUMMARY`.
- The register source has no mark images (it serves a placeholder for every UK mark); images come from the journal or the IPO record.
- Applicant addresses are not in the journal or the register search; they come with the IPO record.
- The journal lists about a year of weekly issues (51 on 2026-10-16), about 3,600 marks each.
- The IPO record reads one page per mark, about 1.2 s apart; if the IPO's site shows its security check, the record is skipped for the rest of the run and the rows are still delivered.
- A run with 0 rows means nothing matched (see `RUN_SUMMARY`); nothing is charged.
- Measured speed: 5 marks in 5 s; 100 marks with goods and services in 25 s; a full journal issue (3,641 marks, 1,566 images) in 26 s.

### ❓ FAQ

#### How much does UK Trademark Scraper cost?

$0.0009 per trade mark, with goods and services, journal images and the optional IPO record included. 100 marks cost $0.09.

#### How many UK trade marks can UK Trademark Scraper return?

The whole register is 3.67 million marks. A single query reaches 10,000; larger searches are read in filing-date windows. A full journal issue is about 3,600 marks.

#### Does UK Trademark Scraper return the owner's address?

Yes, with `includeIpoRecord`: the owner's postal address, country of incorporation and, where the IPO shows it, the company registration number. The register search and the journal give the owner's name.

#### Can UK Trademark Scraper find who represents a trade mark?

Yes. Journal rows carry the representative firm with full address (46% of new applications have one); the IPO record gives the representative for any UK mark.

#### Can I watch new UK trade mark filings with UK Trademark Scraper?

Yes. Schedule journal mode weekly with your words in `searchQueries` and `monitorMode` on; each new published mark arrives once, with its opposition deadline.

#### Does UK Trademark Scraper cover EU trade marks?

It covers the UK register, including the UK comparable marks created from EU trade marks on 1 January 2021 (UK009…). EU trade marks themselves are in our EUIPO Trademark Scraper.

#### Can I use UK Trademark Scraper through the API or an MCP server?

Yes, with the Apify API (Python, JavaScript, HTTP) and the Apify MCP server.

#### Do I need a UK IPO account or an API key?

No. UK Trademark Scraper needs no login, no key and no browser.

#### Why did UK Trademark Scraper return no results?

Nothing matched the search and filters, or the number does not exist. `RUN_SUMMARY` gives the register's own total per search, numbers not found and journal issues read. Nothing is charged.

#### Your feedback

Found a bug or need a field? Open an issue on the [Issues tab](https://apify.com/scrapersdelight/uk-trademark-scraper/issues/open) and we will look at it.

# Actor input Schema

## `mode` (type: `string`):

Register = search all 3.6 million UK marks (live, pending and dead). Journal = the IPO's weekly Trade Marks Journal: every newly published application, with its representative and address.

## `searchQueries` (type: `array`):

One or more marks, e.g. "nike", "apple", "brewdog". Register: searched on the mark text. Journal: filters the issue's marks by mark text.

## `matchMode` (type: `string`):

How the mark text must match. Measured for "nike" on the register: contains 249, exact 57, begins with 121, whole word 99, similar spelling 3,365.

## `ownerNames` (type: `array`):

Owner names, e.g. "Nike Innovate C.V.", "Diageo". Register: owner search (alone or with a mark). Journal: applicant name contains.

## `trademarkNumbers` (type: `array`):

Look up numbers, e.g. UK00003904654, 3904654, UK00912101689 (cloned EU mark). Journal mode also takes international registrations, e.g. WO0000001939971.

## `niceClasses` (type: `array`):

Only marks covering any of these classes (1-45), e.g. 25 (clothing), 9 (software), 35 (retail), 42 (SaaS).

## `statuses` (type: `array`):

Registered, Filed (pending), Expired or Ended. Empty = all. On 2026-10-16: 2,325,043 registered, 72,398 pending, 1,265,253 expired, 11,725 ended.

## `markTypes` (type: `array`):

Word, Figurative (logo), 3D shape, Colour, Sound and so on. Empty = all.

## `viennaCodes` (type: `array`):

Figurative-element codes for logo searches, e.g. 27.05.21 (letters forming a monogram), 03.01 (cats, dogs). Register only.

## `filingDateFrom` (type: `string`):

Only marks filed on or after this date (YYYY-MM-DD).

## `filingDateTo` (type: `string`):

Only marks filed on or before this date (YYYY-MM-DD).

## `filedInLastDays` (type: `integer`):

Rolling window for schedules, e.g. 7 = marks filed in the last week. Overrides "Filed from" when later. 0 = off.

## `registrationDateFrom` (type: `string`):

Only marks entered in the register on or after this date (YYYY-MM-DD). Register only.

## `registrationDateTo` (type: `string`):

Only marks entered in the register on or before this date (YYYY-MM-DD). Register only.

## `openToOppositionOnly` (type: `boolean`):

Only marks whose opposition period is running today (27,853 on the register on 2026-10-16). In journal mode: published less than two months ago.

## `sortBy` (type: `string`):

Register order. Journal rows come in the IPO's own order.

## `journalWeeks` (type: `integer`):

How many of the latest weekly issues to read (1 = this week's; the IPO lists about a year, 51 issues on 2026-10-16). One issue holds about 3,600 marks.

## `journalIssues` (type: `array`):

Read these issues instead of the latest ones, e.g. 2026/042, 2026/041.

## `origin` (type: `string`):

UK applications, international registrations designating the UK, or both.

## `representation` (type: `string`):

Keep marks filed with a representative (attorney firm), without one (applicant filed alone), or both.

## `representativeContains` (type: `array`):

Representative name or address contains any of these, e.g. "Marks & Clerk", "London", "EC4M".

## `goodsServicesContains` (type: `array`):

Goods and services text contains any of these, e.g. "software", "gin", "cosmetics".

## `includeGoodsAndServices` (type: `boolean`):

Register: read each mark's goods and services specification (one small extra request per mark). Journal rows always carry it.

## `includeImages` (type: `boolean`):

Journal: save each logo / figurative mark image the journal carries and give its link (imageUrl). The register source has no images.

## `includeIpoRecord` (type: `boolean`):

Also read the IPO's own page for each UK mark: owner postal address, country of incorporation, company number, representative and address, renewal date, publications, image. ~1.2 s per mark.

## `monitorMode` (type: `boolean`):

Deliver only marks not delivered by an earlier run of the same search, or whose status or dates changed. Pairs with a daily or weekly schedule.

## `monitorKey` (type: `string`):

Optional name for the monitor memory, e.g. "my-brand-watch". Empty = one memory per distinct search.

## `maxResults` (type: `integer`):

Stop after this many marks in total. 0 = no limit (the register search reads past TMview's 10,000-per-query window by date).

## `maxResultsPerSearch` (type: `integer`):

Cap per mark text / owner search (register) or per journal issue (journal). 0 = no per-search cap.

## `compact` (type: `boolean`):

Core fields only (number, mark, status, classes, owner, representative, key dates, IPO link) - trimmed for spreadsheets and AI agents.

## `proxyConfiguration` (type: `object`):

Optional. By default the run connects directly and falls back to Apify residential proxy (GB) only if the register search refuses the connection.

## `maxConcurrency` (type: `integer`):

Goods & services requests in flight at once (register mode).

## Actor input object example

```json
{
  "mode": "register",
  "searchQueries": [
    "nike"
  ],
  "matchMode": "contains",
  "filedInLastDays": 0,
  "openToOppositionOnly": false,
  "sortBy": "relevance",
  "journalWeeks": 1,
  "origin": "all",
  "representation": "any",
  "includeGoodsAndServices": true,
  "includeImages": true,
  "includeIpoRecord": false,
  "monitorMode": false,
  "maxResults": 5,
  "maxResultsPerSearch": 0,
  "compact": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxConcurrency": 6
}
```

# Actor output Schema

## `results` (type: `string`):

One item per UK trade mark: mark text, number, status, type, Nice classes, goods and services, owner, filing / registration / renewal dates, opposition window and links; journal rows add the representative, address, journal issue and image.

## `summary` (type: `string`):

Per-search totals against the register's own count, journal issues read, numbers not found, goods & services and image counts, IPO record counts and connection stats.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "register",
    "searchQueries": [
        "nike"
    ],
    "maxResults": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/uk-trademark-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "register",
    "searchQueries": ["nike"],
    "maxResults": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/uk-trademark-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "register",
  "searchQueries": [
    "nike"
  ],
  "maxResults": 5
}' |
apify call scrapersdelight/uk-trademark-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/uk-trademark-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/UYxB2k5Bb2kXjKOam/builds/KUTKKb1HVht3faX0O/openapi.json
