# List + fetch AI transcripts from a CodeB tenant. # European Digital Identity Wallet-enabled tenants use the same key surface. # [compliance-archive-cookbook 2026-07-23] # pip install requests # # Endpoints live-verified in signal.ashx: # GET signal.ashx?list-transcripts=1 # GET signal.ashx?get-transcript=.json (raw JSON with _transcriptTurns) import os, sys, json, pathlib, requests TENANT = os.environ.get("CODEB_TENANT", "https://") API_KEY = os.environ.get("CODEB_API_KEY") OUT_DIR = pathlib.Path(os.environ.get("OUT_DIR", "./codeb-transcripts")) if not API_KEY: print("CODEB_API_KEY not set", file=sys.stderr); sys.exit(2) OUT_DIR.mkdir(parents=True, exist_ok=True) sess = requests.Session() sess.headers["Authorization"] = f"Bearer {API_KEY}" idx = sess.get(f"{TENANT}/signal.ashx?list-transcripts=1", timeout=30).json() items = idx.get("items", []) print(f"[list] {len(items)} transcripts") for it in items: f = it.get("file") if not f: continue r = sess.get(f"{TENANT}/signal.ashx?get-transcript={f}", timeout=30) r.raise_for_status() doc = r.json() (OUT_DIR / f).write_text(json.dumps(doc, indent=2, ensure_ascii=False)) turns = len(doc.get("_transcriptTurns", []) or []) print(f"[fetch] {f} turns={turns}")