autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
# 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\<query_id>.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... |
|
||||
Reference in New Issue
Block a user