# Apodex Platform Registration — 2026-06-30 ## Working Registration Flow (platform.apodex.ai) ### Account Creation 1. Navigate to `https://platform.apodex.ai/login` 2. Click "Create one" → registration form 3. Fill: Email + Name (optional) + Password (e.g. `EniStrong2026!!`) 4. Click "Create account" → 6-digit OTP sent to email 5. Read OTP via Gmail IMAP 6. Enter OTP → "Verify & continue" → dashboard loads ### Gmail IMAP OTP Reading ```python import imaplib, ssl, re, email as eml, time GMAIL = "[REDACTED-NAME]@gmail.com" GMAIL_APP = "IMAP_APP_PASSWORD" # NOT nhrcldobevqcbyrk (dead) def read_otp(timeout=90): ctx = ssl.create_default_context() deadline = time.time() + timeout while time.time() < deadline: mail = imaplib.IMAP4_SSL("imap.gmail.com", 993, ssl_context=ctx, timeout=15) mail.login(GMAIL, GMAIL_APP) mail.select("INBOX") _, msgs = mail.search(None, '(FROM "apodex" UNSEEN)') if msgs[0]: mid = msgs[0].split()[-1] _, data = mail.fetch(mid, "(RFC822)") raw = data[0][1].decode("utf-8", errors="ignore") msg = eml.message_from_string(raw) body = "" if msg.is_multipart(): for part in msg.walk(): if part.get_content_type() == "text/plain": body = part.get_payload(decode=True).decode("utf-8", errors="ignore") break else: body = msg.get_payload(decode=True).decode("utf-8", errors="ignore") codes = re.findall(r"\b\d{6}\b", body) mail.store(mid, "+FLAGS", "\\Seen") mail.logout() if codes: return codes[0] mail.logout() time.sleep(5) return None ``` ### API Key Creation (Browser UI Only) 1. Navigate to `https://platform.apodex.ai/console/api-keys` 2. Click "Create New Key" 3. Enter name → "Create API Key" 4. **Read full key from textbox immediately** (one-time display) 5. Key format: `sk-<43 chars base64>=` ### API Key Validation ```python import urllib.request, json def test_key(key): req = urllib.request.Request("https://api.apodex.ai/v1/models", headers={"Authorization": f"Bearer {key}"}) resp = urllib.request.urlopen(req, timeout=15) return json.loads(resp.read()) # Returns: {"data": [{"id": "apodex-1-0-deep-research", ...}, ...]} ``` ### Key Storage Keys saved to: `C:\Users\User\Desktop\GroveMind\apodex-mcp-v4\keys\active_keys.json` ```json { "keys": { "[REDACTED-NAME]+apodex1": "sk-QIS...", "[REDACTED-NAME]+apodex2": "sk-OHD...", ... }, "endpoint": "https://api.apodex.ai/v1/chat/completions", "created": "2026-06-30" } ``` ## Known Issues - `POST platform.apodex.ai/v1/api-keys` returns **masked** keys (`sk-95O...JSXg=`). Full key only from browser UI. - `POST api.apodex.ai/v1/api-keys` returns `{"error":"invalid token"}` with Apodex JWT. - Google SA XOAUTH2 IMAP fails (Gmail API disabled in GCP project 958963379068). - Old Gmail app password `nhrcldobevqcbyrk` is dead. Working: `IMAP_APP_PASSWORD`. - `apodex_reforrm_reg.py` is outdated (targets old www.apodex.ai flow, 404s). ## Mass Research Script Script: `C:\Users\User\Desktop\apodex_research\apodex_mass_research.py` - Loads N keys from active_keys.json - Runs N parallel deep-research queries (ThreadPoolExecutor) - Each query uses a different key → no rate limiting - Saves results to `C:\Users\User\Desktop\apodex_research\.md` - Summary in `_summary.json` - Run: `python -u apodex_mass_research.py` (background, ~5 min for 9 queries) ## 9 Working Keys (2026-06-30) | Email | Key Prefix | |-------|-----------| | [REDACTED-EMAIL] | sk-9Zy... | | [REDACTED-EMAIL] | sk-vqm... | | [REDACTED-NAME]+apodex1@gmail.com | sk-QIS... | | [REDACTED-NAME]+apodex1@gmail.com (key 2) | sk-vCp... | | [REDACTED-NAME]+apodex2@gmail.com | sk-OHD... | | [REDACTED-NAME]+apodex3@gmail.com | sk-3py... | | [REDACTED-NAME]+apodex4@gmail.com | sk-W_F... | | [REDACTED-NAME]+apodex5@gmail.com | sk-Fxu... | | [REDACTED-NAME]+apodex6@gmail.com | sk-1Sp... |