Set up in 30 seconds.
Three steps: mint a token, run one install command, paste the token when asked. After that it’s a guided menu — pick what to scan, drop a file or paste a URL, the verdict opens in your browser. No flags to memorise.
Step 1 · Mint & copy
Open Settings → API tokens in the workbench. Click Mint token, then click Copy install command in the green panel that appears. Your clipboard now holds the full one-line installer with your token already baked in — no placeholder to replace.
The token is shown once and never again. Treat it like a password. Revoke or rotate from the same page.
Step 2 · Paste in your terminal
Open Terminal, paste, press Enter. The installer downloads the binary, registers it on $PATH, persists your token, and drops you straight into the wizard. The line on your clipboard looks like:
curl -fsSL https://useverdiqt.vercel.app/cli/install.sh | sh -s -- --token vrdq_… && exec $SHELL
The installer writes to /usr/local/bin/verdiqt when writable, otherwise ~/.local/bin/verdiqt (no sudo), and appends one export PATH=… line to your shell rc — idempotent, never duplicated. The trailing exec $SHELL reloads your shell on wizard exit so future verdiqt calls pick up the new $PATH automatically. Requires Node 20+. ffmpeg is only needed for video scans.
Step 3 · You’re in
The wizard menu opens automatically. Arrow keys to move, Enter to pick, Esc to cancel a step. When it asks for ad copy, just paste — Enter submits, Option+Return (or \ + Enter) inserts a manual newline.
The wizard creates a ~/verdiqt/<your-campaign>/creatives/ folder, opens it in Finder, and waits for you to drop in your assets. Pick what you’re scanning — Copy · Image · Video · Landing page — and the verdict pops open in your browser.
Need to start the wizard again later? Just run verdiqt.
Manual fallback · build the line yourself
Locked out of clipboard access, scripting the install, or just prefer to type it? Copy the bare vrdq_… string from the same green panel (the second copy button, below the divider) and paste it into:
curl -fsSL https://useverdiqt.vercel.app/cli/install.sh | sh -s -- --token vrdq_REPLACE_ME && exec $SHELL
Pass --no-modify-path (or set NO_MODIFY_PATH=1) to skip the rc edit on shared / locked-down machines.
That’s it.
Most people stop here. The rest of this page is reference material for technical users: one-shot install for agents, CI gating, environment variables, exit codes, troubleshooting.
Advanced · One-shot install for agents
Pass the token at install time so the CLI is ready on first invocation — no interactive prompt. Use this from automation, CI, or when scripting setups:
curl -fsSL https://useverdiqt.vercel.app/cli/install.sh | sh -s -- --token vrdq_REPLACE_ME --no-modify-path
--no-modify-path skips the shell rc edit so CI boxes stay clean — wire $INSTALL_DIR on PATH yourself in the workflow definition. --dir <path> forces the install location, --base-url <url> points at a non-production deploy. Confirm with verdiqt me.
Advanced · One-shot scan via flags
verdiqt scan --platform meta --industry health_supplements \ --copy "30-day weight-loss challenge with Lean Greens" \ --url https://example.com/lean-greens
verdiqt scan -p google -i finance --image creative.png \ --copy "Pay off debt 5x faster" --url https://example.com/loans
verdiqt scan -p tiktok -i crypto --sub-mode paid \ --video promo.mp4 --jurisdiction UK \ --legal-layer asa_uk --legal-layer ftc_substantiation
- ·
--legal-layer <id>repeatable:ftc_substantiation,finra_finance,asa_uk,asci_india,eu_dsa - ·
--jurisdiction US|UK|EU|IN|AU(defaultUS) - ·
--jsonraw scan payload,--quietonly the verdict tier on stdout
Advanced · CI gating
verdiqt scanexits with the verdict tier — fail the build on whatever you can’t ship:
verdiqt scan -p meta -i ecommerce \ --copy "$AD_COPY" --url "$LANDING" || exit $?
Fails on warn (1), demonetize (2), or fail (3). Append || true to never gate.
Advanced · Other commands
verdiqt me # tier + quota + token info verdiqt scans list --platform meta # paginate scan history verdiqt scans get <scan-id> # single scan summary verdiqt scans feedback <id> --rating up verdiqt batch upload ads.csv --label "Q2 launch" verdiqt batch wait <batch-id> # polls until completed / failed verdiqt batch export <batch-id> -o results.csv
CSV columns: headline, body, callouts, destinationUrl, platform, industry, subMode, jurisdiction, legalLayers. Pass --no-headers if your CSV has no header row.
Reference · Environment variables
| Variable | Effect |
|---|---|
| VERDIQT_TOKEN | Overrides the stored token. Use this in CI. |
| VERDIQT_BASE_URL | Override the API base URL (e.g. http://localhost:3000). |
| VERDIQT_DEBUG=1 | Print stack traces for unexpected errors. |
| NO_COLOR | Disable ANSI colors. |
Reference · Exit codes
| Code | Meaning |
|---|---|
| 0 | pass verdict |
| 1 | warn verdict |
| 2 | demonetize verdict (YouTube creator yellow-icon) |
| 3 | fail verdict |
| 100 | Error (network, auth, bad input, missing ffmpeg, etc.) |
Troubleshooting
- ·command not found: verdiqt — your
$PATHdoesn’t include the install dir. The installer auto-appends the export to your shell rc (~/.zshrc,~/.bash_profile, or~/.config/fish/config.fish); open a new terminal orsourcethe file. Pass--no-modify-path(or setNO_MODIFY_PATH=1) to opt out and add it yourself. - ·Token rejected — it might have been revoked. Mint a new one at /settings and run
verdiqtagain — the wizard prompts for a replacement. - ·ffmpeg is not on PATH — install with
brew install ffmpeg(macOS) orapt-get install ffmpeg(Debian / Ubuntu). Only needed for video scans. - ·Quota or budget reached (HTTP 402) — demo tier has 1 scan / day. Email the contact returned by
verdiqt meto upgrade. - ·Server timed out after 60s— heavy landing pages can blow Vercel Hobby’s function cap. Retry — the function should be warm now. The async runner picks up where it left off on the next attempt.