# notbvdr/etsy-keywords-research architecture

> Architecture diagram of the GitHub repository notbvdr/etsy-keywords-research, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/notbvdr/etsy-keywords-research
- Repository: https://github.com/notbvdr/etsy-keywords-research

## Overview

This is a small command-line Etsy listing research script. Users provide an API key, choose keyword, tag, or combined search and all versus digital-only listings, then receive listing metrics appended to Done.csv. The README describes finding trending products; the implementation fetches active listings and records views, favorites, age, quantity, price, title, and URL. All runtime behavior is in one file; the Etsy API is documented as legacy and may no longer work. The graph reflects the visible script and README only.

Main entry points: [`spearKEYWORD.py`](https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py) (Search variants)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_search["Search workflow"]
  node_script["CLI and dispatch<br/>[spearKEYWORD.py]"]
  node_search_modes["Search variants<br/>[spearKEYWORD.py]"]
end

subgraph group_results["Listing results"]
  node_listing_processing["Listing metrics<br/>[spearKEYWORD.py]"]
  node_csv_output["CSV output<br/>[spearKEYWORD.py]"]
end

node_user(("CLI user"))
node_etsy["Etsy API"]

node_user -->|"provides inputs"| node_script
node_script -->|"dispatches search"| node_search_modes
node_search_modes -->|"requests listings"| node_etsy
node_search_modes -->|"processes results"| node_listing_processing
node_listing_processing -->|"appends rows"| node_csv_output

click node_script "https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py"
click node_search_modes "https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py"
click node_listing_processing "https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py"
click node_csv_output "https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_script,node_search_modes,node_user toneBlue
class node_listing_processing,node_csv_output toneAmber
class node_etsy toneMint
```

## Components

### Search workflow

- [CLI and dispatch](https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py): `spearKEYWORD.py`
- [Search variants](https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py): `spearKEYWORD.py`

### Listing results

- [Listing metrics](https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py): `spearKEYWORD.py`
- [CSV output](https://github.com/notbvdr/etsy-keywords-research/blob/main/spearKEYWORD.py): `spearKEYWORD.py`

### Other components

- **CLI user**
- **Etsy API**

## Connections

- CLI user → CLI and dispatch: provides inputs
- CLI and dispatch → Search variants: dispatches search
- Search variants → Etsy API: requests listings
- Search variants → Listing metrics: processes results
- Listing metrics → CSV output: appends rows
