AI API Key Checker
approvedby kigrok
Validate API keys and check rate limits for 20+ AI providers. - This plugin has not been manually reviewed by Obsidian staff.
AI API Key Checker
Validate API keys and detect rate limits for 21 AI providers — right inside Obsidian, in one click.
✨ Features
- Instant validation — every key is checked against the real provider API, not a regex.
- Rate-limit & balance detection — tells apart a bad key from a good key with no quota, and shows exactly when the limit resets:
LIMIT — 17:20orLIMIT — 07.11 15:00. - Bulk check — paste 50+ keys at once, get results in seconds.
- Smart sorting — broken keys float to the top so you spot problems first.
- Click to copy — click a masked key to copy it; hover to reveal the full value.
- Stats bar —
12 OK | 3 LIMIT | 2 INVALID (17 total)at a glance. - Last-check time — see when each provider was last verified.
📦 Installation
From Obsidian
Open Settings → Community plugins → Browse, search for AI API Key Checker, and install — or open it directly in the community plugin catalog. Then enable the plugin.
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Drop them into
YourVault/.obsidian/plugins/api-key-checker/:YourVault/.obsidian/plugins/api-key-checker/ ├── main.js ├── manifest.json └── styles.css - In Obsidian: Settings → Community plugins → Reload, then enable AI API Key Checker.
Via BRAT
Add this repository in the BRAT plugin to auto-update from releases.
🚀 Usage
- Click the key icon in the left ribbon (or run the command AI API Key Checker: Open panel).
- Hit Add key, pick a provider, paste one or more keys (one per line).
- Read the results — grouped by provider, worst status first.
🔌 Supported providers
21 providers — click to expand
| Provider | Check Method | Notes |
|---|---|---|
/v1/models | ||
/v1/models | ||
| Model list + Gemini probe | Detects daily quota reset | |
/v1/models | ||
| Chat completion (grok-3) | ||
| Anthropic messages API | Parses reset time from 402 | |
| Anthropic messages API | ||
| Chat completion | Shows balance | |
| Anthropic messages API | Detects rate limit via error body | |
| Chat completion (free model) | ||
/v1/models | Bearer auth | |
| Model invoke (nova-lite) | Detects proxy limitations | |
| Chat completion (glm-5) | ||
/v1/models | ||
| Chat completion (mercury-2) | ||
| Chat completion (deepseek-v4-pro) | ||
| Chat completion (abliterated-model) | ||
| Chat completion (free model) | ||
| Chat completion (gpt-3.5-turbo) | ||
/v1/chats | ||
| Chat completion (Mistral-7B) |
🎯 Status legend
| Status | Meaning | |
|---|---|---|
OK | 🟢 | Key is valid and working |
LIMIT | 🟡 | Key works but is rate-limited or out of credits (shows reset time) |
INVALID | 🔴 | Key rejected — check for typos or expiry |
ERROR | 🟠 | Network issue or the provider is down |
🔒 Privacy
Your keys never leave your machine except to reach the provider you are validating.
There is no telemetry, no analytics, and no third-party server in between.
Keys are stored locally in .obsidian/plugins/api-key-checker/data.json — treat that file as a secret and never commit it.
The click-to-copy feature writes the selected key to your system clipboard only when you click it; the plugin never reads clipboard content.
🛠️ Development
npm install # install dev dependencies
npm run dev # watch-mode build (esbuild)
npm run build # type-check + minified production bundle -> main.js
npm run lint # ESLint (typescript-eslint + eslint-plugin-obsidianmd)
Source lives in src/ (main.ts = UI/plugin lifecycle, checker.ts = validation engine). Obsidian only loads the bundled main.js, so rebuild after every change. Adding a provider is a five-step change — see CLAUDE.md.
📄 License
MIT © VenvStore
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.