1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# tmview-py
CLI tool to search EU trademark registries via [TMview](https://www.tmdn.org/tmview/), which aggregates 137M+ marks from EUIPO, all 27 EU member states, and WIPO international registrations.
## Install
```bash
pip install -e .
```
## Usage
```bash
tmview <query> [options]
```
```
Options:
-o, --offices CODES Comma-separated office codes (default: all EU + WIPO)
-l, --limit N Max results (default: 20, max: 100)
-c, --classes NUMS Nice class filter, comma-separated (e.g. 9,35)
-s, --status STATUS registered | pending | expired
-v, --verbose Show fetch timestamp column
-d, --download-logos Download logo images to DIR
--similar-to IMG Find trademarks with visually similar logos to IMG
--json Output raw JSON instead of table
--page N Page number (default: 1)
--all-offices Also include non-EU offices (US, GB, JP, CH, etc.)
```
## Examples
```bash
tmview "NIKE"
tmview "TESLA" --offices EM,DE,FR
tmview "APPLE" --classes 9,35 --status registered
tmview "GOOGLE" --json | jq '.[:3]'
tmview "COCA COLA" --limit 50 --page 2
tmview "Hacking-Lab" --all-offices -v
# Image similarity search
tmview --similar-to logo.png
tmview --similar-to logo.png --all-offices -d ./matches
```
## Output columns
| Column | Description |
|---------|-------------|
| Origin | Office code + name where the mark was filed |
| Name | Trademark name |
| Status | Registration status (colour-coded) |
| Type | Mark type: Word, Figurative, Combined, 3D, etc. |
| Owner | First listed applicant/owner |
| Classes | Nice classes (see below) |
| Applied | Application date |
| App # | Application number |
| Fetched | Timestamp of the API request (`-v` only) |
### Nice classes
Trademarks are categorised by the [Nice Classification](https://www.wipo.int/nice/en/) system — 45 classes that group goods and services. Common ones:
| Class | Covers |
|-------|--------|
| 9 | Software, electronics, computers |
| 25 | Clothing, footwear |
| 35 | Advertising, business services |
| 38 | Telecommunications |
| 41 | Education, entertainment |
| 42 | IT services, SaaS, research |
Use `-c` to filter: `tmview "APPLE" -c 9,42`
### Status colours
- **Green** — Registered
- **Yellow** — Filed / Pending
- **Red** — Expired / Refused
### Office codes
Default search covers all EU member states plus EUIPO (`EM`) and WIPO international registrations (`WO`). Notable codes:
| Code | Registry |
|------|----------|
| `EM` | EUIPO (EU-wide) |
| `WO` | WIPO / Madrid Protocol (international) |
| `BX` | Benelux (Belgium, Netherlands, Luxembourg) |
| `DE` | Germany |
| `FR` | France |
| `GB` | UK (post-Brexit) |
| `CH` | Switzerland |
| `US` | USPTO |
Full list: `tmview --help`
## Caching
Results are cached in `~/.cache/tmview/` keyed by query parameters. Cached responses are served instantly and flagged with `(cached — fetched <timestamp>)` on stderr. Delete the cache directory to force fresh results.
|