Files
autoreg-skills-max/skills/ai-provider-autoreg/references/you-com-new-survey-and-modal-flow.md

2.7 KiB

You.com — New Survey + Modal Key Creation Flow (Oct 2026)

As of Oct 2026, the Sep 2026 survey walker is broken. The UI changed completely:

Flow (verified end-to-end, $100 credits extracted)

  1. OTP login still works: submit email → IMAP code → magic link → logged in
  2. Survey: "How did you hear about us?" — multi-select with 12 options (Podcast/newsletter, Instagram/TikTok/YouTube, Google, ChatGPT/Claude, GitHub, LinkedIn, Twitter/X, Word of mouth, etc.) + "Get started" button
    • Click a radio button option, then click "Get started" (native playwright locator page.get_by_text('Get started').first)
    • After Get started → redirected to /platform
  3. Keys page: /platform/keys returns 404. The new keys page is /platform — dashboard with "Create your API key" section and "+ Create API key" button.
  4. Create key modal: Clicking "+ Create API key" opens modal "New API key" with:
    • Input: "Key name*" (single text field)
    • Buttons: Cancel / Create (black, right)
  5. Fill name: Use native playwright page.locator('input:not([type=hidden])').first.fill('key-1') — NOT JS value setter (React deadlocks on synthetic events)
  6. Click Create: page.locator("button:has-text('Create'):not(:has-text('key'))").last — .first hits the BACKGROUND "+ Create API key" button, reopening the modal instead of submitting. Use .last to target the modal button.
  7. Key: ydc- format (same regex ydc-[A-Za-z0-9_-]{10,}), visible in page HTML after creation and in network responses

Network interceptor pattern (catches key even if page scan fails)

CAPTURED = []
async def on_resp(resp):
    ct = resp.headers.get('content-type', '')
    if 'json' in ct:
        body = await resp.text()
        if 'ydc-' in body:
            CAPTURED.append({'url': resp.url, 'body': body})
page.on('response', on_resp)

Pitfalls

  • Button targeting: There are TWO visible "Create" buttons: the background "+ Create API key" and the modal "Create". .first = background = opens a new modal (breaks flow). Use button:has-text('Create'):not(:has-text('key')).last.
  • Survey URL never changes during survey steps — don't wait for URL change; use DOM content detection.
  • JS value setter on React inputs: Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value').set.call(...) triggers React but may deadlock. Prefer native playwright locator.fill().
  • find_keys still works on page HTML after successful key creation — the ydc- key appears in the DOM.
  • $10 base + $90 verification: Account starts with $10. GitHub/work-email verification adds $90. Registration flow sets OTP-only auth (no password). Subsequent logins need OTP magic link.