# Email-delivered CAD: the JST flow (and how to add any email-gated manufacturer)

Most manufacturers serve CAD as a direct download. A growing few **email it to
you** instead. **JST (J.S.T. Mfg. Co., Ltd.)** is the reference case: since
**April 2025**, requesting a STEP/IGES file on jst-mfg.com sends it as an
**email attachment** rather than a download. This page documents the whole
flow end-to-end so any chip-fetcher user, on any AI, can reproduce it, and so
non-Gmail users know exactly what to build to participate.

> Proven end-to-end on **PHR-2** (2026-06-27): native browser → agreement form
> → JST emailed `PHR-2.zip` (containing `PHR-2.STEP`) → fetched from Gmail →
> imported. No JST account required.

This is the human-readable companion to the agent playbooks shipped in the
skill: `playbooks/jst.md` and `playbooks/jst-email-retrieval.md`.

---

## TL;DR

1. **Use a real browser, not a headless/pup one.** jst.com (USA) is
   Cloudflare-protected and blocks automated browsers. Drive your real,
   signed-in Chrome via the Adom **native-browser bridge**
   ([adom-browser-extension](https://wiki.adom.inc/adom/adom-browser-extension)).
2. JST's CAD lives on the **global site jst-mfg.com**, organized by **series**
   (PH = 199, SH = 231, … ~600 series). jst.com just routes there.
3. A part's **Download** button does **not** return a file — it returns a
   **License Agreement form**. **Accept cookies first**, fill
   company/section/name/address/tel/**email**, and submit ("I agree").
4. JST **emails** the `.zip` (STEP or IGES) to that address within ~1 minute.
5. **Retrieve the attachment from email** and import it. There is **no
   account login** for CAD.

## Why a real browser is mandatory

jst.com sits behind Cloudflare's bot challenge ("Just a moment… / Performing
security verification"). Automated/headless browsers (including pup) get stuck
on it. The native-browser bridge drives your **actual** Chrome window, which
already carries Cloudflare's human-trust, so it passes cleanly. If you don't
have the bridge installed, set it up first:
[adom-browser-extension](https://wiki.adom.inc/adom/adom-browser-extension).

(jst.com also shows a "Distributor Login" — that's for distributors, **not** a
CAD gate. You never need it for CAD.)

## Step 1 — find the part's series

JST groups CAD by **series**, not by individual part number.

- **Browse all series:** the Series Alphabet Search,
  `https://www.jst-mfg.com/product/index.php?type=5`. Every series is a
  `index.php?series=<id>` link. This is also your **scope list** if you ever
  batch the catalog.
- **Or search a known part:** `https://www.jst-mfg.com/search/?q=<part>`.
  Strip ordering suffixes first: drop the lead-free/plating `(LF)(SN)` and any
  `(…)` option group, plus a trailing suction-cap `T` on SMT headers. Example:
  `B10B-PH-K-S(LF)(SN)` → search `B10B-PH-K-S`.

## Step 2 — read the CAD format columns

Open the series page. Each part row has **Download** buttons under format
columns. The `doc=` number in the link is **per-series** — read the **column
header**, don't assume:

| Column (PH series, 199) | `doc=` | What you get |
|---|---|---|
| IGES   | 1 | 3D model, `.IGS` |
| STEP   | 2 | 3D model, `.STEP` (prefer this) |
| 3D-PDF | 3 | 3D PDF |
| 2D-PDF | 4 | dimensioned drawing PDF |

⚠️ **Coverage varies.** Some older series offer **only IGES** (no STEP). If
there's no STEP, take IGES and convert downstream (`step2glb` /
`service-kicad`).

The download link itself looks like:
`https://www.jst-mfg.com/product/index.php?type=10&series=<S>&doc=<D>&filename=<PART>.zip`

## Step 3 — the agreement form (the gate)

Opening that link does two things on JST's server: it **remembers which file
you asked for** (in your session) and shows a **License Agreement** page with
required fields:

- Company name, Section name, Name, Address, Telephone, **E-Mail** (all
  required), URL (optional).

**Accept the cookie banner first** — JST states *"accept cookies in order to
submit any of our forms."* Then fill the fields and click **"I agree"**. The
page confirms: **"The data has been sent to your email address."**

Because the requested file is tied to your **browser session**, the page you
open (which sets it) and the submit must happen in the **same browser** — which
is automatic when you drive it in one window.

For a **large batch**, request to a filtered alias (e.g.
`you+jst@yourdomain.com`) so the attachments are easy to isolate and your main
inbox isn't buried.

## Step 4 — retrieve the emailed file

This is the part that needs an **email-reading capability**, which is
**account-specific** and therefore not bundled into chip-fetcher. Pick the path
for your provider.

### Gmail / Google Workspace → `adom-google`

[`adom-google`](https://wiki.adom.inc/adom/adom-google) reads Gmail via the
API (no browser automation):

```bash
adom-google status                                   # confirm Gmail scope is authorized
# find the JST mail (strip the leading "HTTP 200 …" line before parsing JSON):
adom-google api "https://gmail.googleapis.com/gmail/v1/users/me/messages" \
    -q q="JST newer_than:1d" -q maxResults=5
adom-google gmail attachments <messageId>            # lists "<PART>.zip … id: <attId>"
adom-google gmail read <messageId> <attId> -o <PART>.zip
```

Tip: IGES and STEP both arrive as `<PART>.zip` — tell them apart by the
**inner** file (`.STEP` vs `.IGS`) and take the **newest** matching message.

### Not a Gmail user? Build it, share it, breadcrumb it

If you're on Microsoft 365/Outlook, Fastmail, a corporate IMAP server, etc.,
`adom-google` doesn't apply. You need a small equivalent that (1) connects to
your mailbox (Microsoft Graph, IMAP, JMAP…), (2) finds the manufacturer mail,
and (3) saves the `.zip` attachment — the same three steps as above.

Then **share it so nobody re-solves it**:

- Publish your fetcher as a small CLI/skill on the [Adom Wiki](https://wiki.adom.inc)
  (the way `adom-google` is published). Keep secrets local; mirror the
  `attachments` / `read` verb shape so this doc's steps still read true.
- **Drop a chip-fetcher [breadcrumb](https://wiki.adom.inc/adom/wiki-breadcrumbs)**
  pointing at your fetcher, so it auto-surfaces from this page for the next
  person on your provider — no edit to chip-fetcher required.

That keeps chip-fetcher **provider-agnostic**: the email layer is a pluggable,
community-extensible piece, and every new provider integration is discoverable
right here.

## Step 5 — datasheet + import

JST has no per-part datasheet; use the **series catalog PDF**, a plain direct
download (no gate): `https://www.jst-mfg.com/product/pdf/eng/e<SERIES>.pdf`
(e.g. `ePH.pdf`). The per-part **2D-PDF** drawing is the mechanical print.

```bash
adom-chip-fetcher import <PART>.STEP --mpn <PART>
adom-chip-fetcher import <catalog>.pdf --mpn <PART>
```

## What JST gives you — and what it doesn't

JST supplies **3D models (STEP/IGES) + drawings + the series catalog datasheet
only**. It does **not** supply EDA **symbol** (`.kicad_sym`) or **footprint**
(`.kicad_mod`). Those still come from chip-fetcher's normal ladder
(**SnapEDA/SnapMagic → Mouser → DigiKey → UL/CSE**). `adom-chip-fetcher gate`
will correctly keep a JST card **incomplete** until the symbol + footprint land
— that's expected, not a bug.

## Batch hazards (read before crawling the catalog)

- The full catalog is ~600 series × tens of thousands of parts → that many
  form submits **and emails**. Throttle hard (human-like 2–5s delays), route to
  a filtered alias, and expect JST to rate-limit. **Scope deliberately** (a
  priority set of series, or per-BOM) rather than blasting everything.
- One email per file; STEP and IGES are separate requests/emails.

## See also

- Agent playbooks in the skill: `playbooks/jst.md`,
  `playbooks/jst-email-retrieval.md`
- [adom-browser-extension](https://wiki.adom.inc/adom/adom-browser-extension) ·
  [adom-google](https://wiki.adom.inc/adom/adom-google) ·
  [wiki breadcrumbs](https://wiki.adom.inc/adom/wiki-breadcrumbs)
