bunpro-sync
Sync Bunpro Japanese grammar learning progress from the API to local storage for analysis and insights. Use when the user wants to backup their Bunpro progress, track grammar mastery, analyze review patterns, or monitor JLPT level progression. Works with the community-documented Bunpro Frontend API.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/mart1n-xyz/bunpro-syncBunpro Sync
Sync your Bunpro grammar learning progress locally for analysis and insights.
⚠️ Important: This uses a community-documented API. The official Bunpro API Key from settings does NOT work - you need the Frontend API Token from your browser.
Overview
This skill fetches your Japanese grammar progress from Bunpro and stores it in a local SQLite database. Track SRS stages, review forecasts, JLPT progress, and identify grammar leeches (items that keep falling back).
API Keys: The Two Different Tokens
Bunpro has two different API tokens that serve different purposes:
❌ DO NOT USE: "Official" API Key (from Settings)
- Found at:
bunpro.jp/settings/account - Looks like:
d406663ff421af27c87caaa62eefdb7a(32 hex characters) - Does NOT work with the Frontend API endpoints this skill uses
- Returns 401 Unauthorized errors
✅ USE THIS: Frontend API Token (from Browser)
- Found in: Browser DevTools → Console or Application Storage
- Looks like:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...(long JWT, 200+ chars) - This is what the skill requires
- Expires periodically (you'll need to refresh it)
How to Get the Frontend API Token
Method 1: Console (Recommended)
- Go to bunpro.jp and log in
- Press F12 to open DevTools
- Click the Console tab
- Paste this JavaScript and press Enter:
Object.fromEntries( new URLSearchParams( document.cookie.replace(/; /g, '&') ) ).frontend_api_token - Copy the long string that appears (starts with
eyJ)
Method 2: Local Storage
- Go to bunpro.jp and log in
- Press F12 → Application tab (or Storage in Firefox)
- In the left sidebar, expand Local Storage → https://bunpro.jp
- Look for
token,authToken, orfrontend_api_token - Copy the value (starts with
eyJ)
Method 3: Network Tab
- Go to bunpro.jp and log in
- Press F12 → Network tab
- Refresh the page
- Look for any API call (like
/useror/queue) - Click it → Headers → Request Headers
- Find
Authorization: Bearer eyJ... - Copy the part after "Bearer "
⚠️ Token Expiry: The Frontend API Token expires eventually (days/weeks). When you get 401 errors, repeat the steps above to get a fresh token.
Quick Start
Sync All Data
# Using environment variable (recommended)
export BUNPRO_FRONTEND_API_TOKEN="eyJ0eXAiOiJKV1Qi..."
python3 scripts/sync.py
# Or pass token directly (less secure)
python3 scripts/sync.py --token "eyJ0eXAiOiJKV1Qi..."
# Store in specific directory
python3 scripts/sync.py --data-dir ~/bunpro-data
Sync Specific Data
# Only user info
python3 scripts/sync.py --user-only
# Only study queue
python3 scripts/sync.py --queue-only
# Only reviews
python3 scripts/sync.py --reviews-only
Force Full Sync
python3 scripts/sync.py --full
Database Schema
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-mart1n-xyz-bunpro-sync": {
"enabled": true,
"auto_update": true
}
}
}