# Changelog of Certificate Transparency Subdomain Scraper (`devilscrapes/crt-sh-certificate-transparency-scraper`) Actor

- **URL**: https://apify.com/devilscrapes/crt-sh-certificate-transparency-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/devilscrapes/crt-sh-certificate-transparency-scraper.md

## crt.sh Certificate Transparency & Subdomain Enumeration — Changelog

### 0.0.1 — 2026-09-05

- Initial implementation: `src/crtsh_client.py` (curl-cffi GET against
  `crt.sh/?q=%25.<domain>&output=json`, retry/backoff on 408/429/503 +
  network errors, per-domain failure never crashes the run), `src/parser.py`
  (pure filter → dedupe/split → cap → compute → `ResultRow` pipeline,
  REQ-3..REQ-6), `src/main.py` (validate → charge `actor-start` → per-domain
  loop → push + charge `certificate-scraped`).
- `.actor/` scaffolded: actor.json, input/output/dataset schemas, PPE
  (`actor-start` $0.20 flat, `certificate-scraped` $0.006/row), Dockerfile
  (`CMD ["python", "-m", "src"]` matching `src/__main__.py`).
- Test coverage: `test_models.py`, `test_parser.py` (fixture-driven against
  real captured crt.sh samples), `test_crtsh_client.py` (mocked session),
  `test_main_fault_isolation.py`, `test_charge_order.py`,
  `test_charge_no_idempotency_key.py`, `test_prefill_smoke.py` (opt-in,
  live network).
- Icon pending — `actor-icon-designer` runs as the next step.
- See `docs/specs/crt-sh-certificate-transparency-scraper/design.md` for
  the full architecture.
