# IP Australia Trademarks Scraper (`automation-lab/ip-australia-trademarks-scraper`) Actor

Search IP Australia trademarks and export public status, owner, class, date, image, and goods/services data for brand and IP research.

- **URL**: https://apify.com/automation-lab/ip-australia-trademarks-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## IP Australia Trademarks Scraper

Scrape public IP Australia trademark search results and detail pages for brand monitoring, legal due diligence, and competitive IP research.

### What does IP Australia Trademarks Scraper do?

IP Australia Trademarks Scraper searches the public Australian Trade Mark Search website and returns structured trademark records.

It collects search result data and can enrich every record from the trademark detail page.

Use it to monitor brands, check owners, review statuses, and export trademark evidence into your workflows.

The actor is designed for HTTP-only scraping, so it is fast and cost-efficient.

### Who is it for?

⚖️ IP lawyers can collect trademark status and class data for clearance checks.

🏷️ Brand protection teams can monitor names, slogans, and marks in Australia.

📊 Due diligence analysts can review trademark ownership during M&A or investment research.

🛒 Marketplace and compliance teams can check whether a brand name has Australian trademark coverage.

🧑‍💼 Agencies can automate recurring watch-list exports for clients.

### Why use this actor?

The IP Australia website is public but manual searches do not scale well.

This actor turns repeated searches into a dataset you can filter, export, or integrate.

It saves time when you need the same evidence across many brands.

It also keeps detail URLs with every row so you can verify each record at the source.

### What data can it extract?

The actor can return fields from both search result pages and detail pages.

| Field | Description |
| --- | --- |
| query | Search term used |
| page | Result page number |
| resultPosition | Position shown in the result list |
| trademarkNumber | IP Australia trademark number |
| wordMark | Word mark text |
| status | Current public status |
| classes | Trademark classes |
| owner | Owner name when available |
| applicant | Applicant name when available |
| filingDate | Filing date from the detail page |
| registrationDate | Registered from / register date |
| renewalDate | Renewal due date |
| priorityDate | Priority date shown by IP Australia |
| kind | Word, figurative, or other kind |
| goodsServices | Combined goods and services text |
| goodsServicesByClass | Per-class goods and services list |
| imageUrl | Mark image URL when present |
| detailUrl | Source trademark detail URL |
| sourceUrl | Search results URL |
| scrapedAt | Timestamp of extraction |

### How much does it cost to scrape IP Australia trademarks?

The actor uses pay-per-event pricing.

A small start fee covers each run.

A per-result event is charged for each trademark record saved.

With the default configuration, a 25-result first run is intentionally cheap.

Exact platform pricing is shown on the Apify actor page before you start a run.

### How to use IP Australia Trademarks Scraper

1. Open the actor on Apify.

2. Add one or more trademark search queries.

3. Keep `maxResults` low for a first test.

4. Leave `includeDetails` enabled when you need dates and goods/services.

5. Start the run.

6. Download the dataset as JSON, CSV, Excel, or via API.

### Input

The main input is `queries`.

Use brand names, owner names, product names, slogans, or other trademark search terms.

You can also provide direct IP Australia result URLs in the advanced `startUrls` field.

The actor extracts the `q=` parameter from those URLs and searches that query.

### Input example

```json
{
  "queries": ["tesla", "apple"],
  "maxResults": 50,
  "includeDetails": true
}
````

### Output example

```json
{
  "query": "tesla",
  "page": 1,
  "resultPosition": 1,
  "trademarkNumber": "1123978",
  "wordMark": "TESLA",
  "status": "registered: Renewal due",
  "classes": ["12"],
  "owner": "Ozcott Pty Ltd",
  "filingDate": "14 Jul 2006",
  "registrationDate": "14 Jul 2006",
  "renewalDate": "14 Jul 2026",
  "kind": "Figurative",
  "detailUrl": "https://search.ipaustralia.gov.au/trademarks/search/view/1123978?q=tesla"
}
```

### Detail enrichment

When `includeDetails` is true, the actor opens each trademark detail page.

This adds fields such as filing date, renewal date, registration date, kind, and goods/services.

Detail enrichment uses more requests but provides much richer legal and diligence data.

Turn it off when you only need a quick result list.

### Tips for best results

✅ Start with exact brand names before broad keywords.

✅ Use multiple queries for watch lists.

✅ Use `maxResults` to control run size and cost.

✅ Keep `includeDetails` enabled for legal review workflows.

✅ Verify important records using the included `detailUrl`.

### Integrations

Send exported datasets into spreadsheets for attorney review.

Connect the actor to a CRM or brand monitoring dashboard.

Use Apify webhooks to notify your team when a scheduled watch-list run finishes.

Push records into a database for historical trademark status monitoring.

Combine results with company registry or domain data for due diligence workflows.

### API usage with Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ip-australia-trademarks-scraper').call({
  queries: ['tesla'],
  maxResults: 25,
  includeDetails: true,
});
console.log(run.defaultDatasetId);
```

### API usage with Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/ip-australia-trademarks-scraper').call(run_input={
    'queries': ['tesla'],
    'maxResults': 25,
    'includeDetails': True,
})
print(run['defaultDatasetId'])
```

### API usage with cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~ip-australia-trademarks-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"queries":["tesla"],"maxResults":25,"includeDetails":true}'
```

### MCP usage

You can run this actor from MCP-compatible tools through Apify MCP.

Use this MCP tool URL:

`https://mcp.apify.com/?tools=automation-lab/ip-australia-trademarks-scraper`

Claude Code setup:

```bash
claude mcp add apify https://mcp.apify.com/?tools=automation-lab/ip-australia-trademarks-scraper
```

Claude Desktop JSON config:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=automation-lab/ip-australia-trademarks-scraper"
    }
  }
}
```

#### Example prompts for MCP usage

Use prompts like these in Claude Code, Claude Desktop, or another MCP-compatible client after adding the Apify MCP server:

- "Use the Apify MCP tool `automation-lab/ip-australia-trademarks-scraper` to run the IP Australia Trademarks Scraper for `tesla` with details enabled, then summarize owners, classes, statuses, and renewal dates."
- "Run `automation-lab/ip-australia-trademarks-scraper` for `apple`, `canva`, and `atlassian`; return a CSV-ready table with trademark number, word mark, owner, status, classes, and detail URL."
- "Check Australian trademark records for these five proposed brand names with the Apify MCP actor and flag exact or close word-mark matches that may need legal review."
- "Run the trademark scraper for my watch list every week and highlight marks with renewal dates in the next 12 months or status changes since the previous dataset."

### Scheduling and monitoring

Schedule the actor daily, weekly, or monthly for recurring watch lists.

For recurring jobs, keep the same query list and compare new datasets over time.

Apify webhooks can notify you when runs finish.

You can then trigger downstream processing in your own system.

### Legality

This actor scrapes public IP Australia trademark pages.

It does not bypass login walls or access private account data.

You are responsible for using the output lawfully and respecting applicable terms, rules, and professional obligations.

For legal advice, consult a qualified professional.

### FAQ

#### Does this actor require an IP Australia account?

No. It uses public search result and detail pages that are visible without login.

#### Can I search multiple brands in one run?

Yes. Add several entries to `queries` and set `maxResults` high enough for the combined output you need.

#### Why are some fields empty?

Some public records do not have every date, applicant, image, or goods/services field available in the same way.

### Troubleshooting

If a query returns no rows, try the same query manually on IP Australia to confirm public results exist.

If a broad query returns too much data, reduce `maxResults` or use a more specific brand name.

If detail pages are slow, run with `includeDetails` set to false for a lightweight search export.

### Related scrapers

Explore other Automation Lab actors for public records, company intelligence, and monitoring workflows.

Use related actors from `https://apify.com/automation-lab/` when you need complementary datasets.

Examples include company registry scrapers, review monitoring actors, and domain intelligence tools.

### Data quality notes

The actor preserves IP Australia wording where possible.

Dates are returned as displayed on the source website.

Statuses may include public status text exactly as shown by IP Australia.

Goods and services can be long for broad trademark classes.

### Performance notes

The actor uses HTTP requests and Cheerio parsing.

No browser is required for the current public IP Australia pages.

A 256 MB memory setting is sufficient for normal runs.

The default first run is intentionally small.

### Changelog

Initial version supports keyword searches, pagination, detail enrichment, goods/services extraction, owner extraction, image URLs, and PPE charging.

# Actor input Schema

## `queries` (type: `array`):

Brand names, owner names, or keywords to search in IP Australia's public Trade Mark Search.

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

Total number of trademark results to save across all queries. Keep this low for a quick first run.

## `includeDetails` (type: `boolean`):

When enabled, the actor opens each trademark detail page to extract filing dates, renewal dates, goods/services, owner details, and kind.

## `startUrls` (type: `array`):

Optional direct IP Australia search result URLs. The actor extracts the q= query parameter and processes it as a search term.

## Actor input object example

```json
{
  "queries": [
    "tesla"
  ],
  "maxResults": 20,
  "includeDetails": true,
  "startUrls": [
    {
      "url": "https://search.ipaustralia.gov.au/trademarks/search/quick/result?q=tesla"
    }
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "queries": [
        "tesla"
    ],
    "startUrls": [
        {
            "url": "https://search.ipaustralia.gov.au/trademarks/search/quick/result?q=tesla"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/ip-australia-trademarks-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 = {
    "queries": ["tesla"],
    "startUrls": [{ "url": "https://search.ipaustralia.gov.au/trademarks/search/quick/result?q=tesla" }],
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/ip-australia-trademarks-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "tesla"
  ],
  "startUrls": [
    {
      "url": "https://search.ipaustralia.gov.au/trademarks/search/quick/result?q=tesla"
    }
  ]
}' |
apify call automation-lab/ip-australia-trademarks-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/ip-australia-trademarks-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IP Australia Trademarks Scraper",
        "description": "Search IP Australia trademarks and export public status, owner, class, date, image, and goods/services data for brand and IP research.",
        "version": "0.1",
        "x-build-id": "IMEHSEp5s7UrBk8h6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~ip-australia-trademarks-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-ip-australia-trademarks-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automation-lab~ip-australia-trademarks-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-ip-australia-trademarks-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automation-lab~ip-australia-trademarks-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-ip-australia-trademarks-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Trademark search queries",
                        "type": "array",
                        "description": "Brand names, owner names, or keywords to search in IP Australia's public Trade Mark Search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Maximum trademark records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Total number of trademark results to save across all queries. Keep this low for a quick first run.",
                        "default": 20
                    },
                    "includeDetails": {
                        "title": "Visit detail pages",
                        "type": "boolean",
                        "description": "When enabled, the actor opens each trademark detail page to extract filing dates, renewal dates, goods/services, owner details, and kind.",
                        "default": true
                    },
                    "startUrls": {
                        "title": "Direct IP Australia result URLs",
                        "type": "array",
                        "description": "Optional direct IP Australia search result URLs. The actor extracts the q= query parameter and processes it as a search term.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
