aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 26fe25a5d43b11dfad5948465776c401db02fd06 (plain) (blame)
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.