Developer API

Skill Focus Lab API

Integrate professional skill assessment into your application. Available for Enterprise plan customers.

Base URL
https://skillfocuslab.org/api/v1

Authentication

All API requests require a Bearer token in the Authorization header. You'll receive your API key after enrolling in the Enterprise plan.

GET /api/v1/skills/score
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Rate Limits

Enterprise plan: 1,000 requests/minute. Business plan: 200 requests/minute. Each response includes X-RateLimit-Remaining and X-RateLimit-Reset headers.

Endpoints

GET /api/v1/skills/score

Get Skill Score

Returns the composite Skill Score (0-100) and individual sub-scores for a user.

Parameters
user_email query Filter by user email (team admin only)
Response
{
  "user_id": 1234,
  "overall_score": 73,
  "tier": "advanced",
  "sub_scores": {
    "typing": { "score": 82, "wpm": 68, "accuracy": 96.4 },
    "grammar": { "score": 75, "readability": 82 },
    "focus": { "score": 61, "sessions_this_week": 12, "total_minutes": 300 },
    "resume": { "score": 74, "ats_score": 89 }
  },
  "streak": { "current": 14, "longest": 42 },
  "updated_at": "2026-02-22T10:30:00Z"
}
POST /api/v1/typing/analyze

Analyze Typing Performance

Submit typing data for AI analysis. Returns WPM, accuracy, weak keys, and coaching tips.

Parameters
text body The text that was typed (required)
original body The original text prompt (required)
duration_ms body Typing duration in milliseconds
Response
{
  "wpm": 64,
  "accuracy": 95.2,
  "weak_keys": ["q", "z", "x"],
  "coaching": "Focus on bottom-row keys. Your accuracy drops 8% on q-z-x sequences.",
  "difficulty_recommendation": "medium"
}
POST /api/v1/grammar/check

Check Grammar

Submit text for AI grammar analysis. Returns issues, corrections, and readability metrics.

Parameters
text body Text to check (max 5,000 chars, required)
style body Writing style: formal, casual, academic
Response
{
  "readability_score": 78,
  "grade_level": "10th grade",
  "issues": [
    { "type": "grammar", "text": "their", "suggestion": "there", "context": "...put it over their...", "explanation": "Use 'there' for location" }
  ],
  "word_count": 342,
  "sentence_count": 18
}
POST /api/v1/resume/score

Score Resume

Submit resume text for comprehensive scoring across 6 categories.

Parameters
resume_text body Resume content as plain text (required)
job_description body Target job description for keyword matching
Response
{
  "overall_score": 74,
  "categories": {
    "content": 82, "impact": 68, "structure": 85,
    "keywords": 71, "formatting": 78, "ats": 62
  },
  "top_improvements": [
    "Add quantifiable achievements (e.g., 'Increased revenue by 23%')",
    "Include industry-specific keywords from target job descriptions"
  ]
}
GET /api/v1/team/analytics

Team Analytics

Returns aggregated skill metrics for all team members. Team admin only.

Parameters
period query 7d, 30d, 90d (default: 30d)
department query Filter by department tag
Response
{
  "team_size": 24,
  "avg_skill_score": 61,
  "top_performer": { "name": "Alice", "score": 92 },
  "skill_distribution": {
    "expert": 3, "advanced": 8, "intermediate": 10, "beginner": 3
  },
  "weekly_trend": { "direction": "up", "change": 2.4 },
  "most_active_tools": ["typing-test", "grammar-checker", "pomodoro"]
}
POST /api/v1/webhooks

Create Webhook

Register a webhook URL to receive real-time events (score updates, milestones, new members).

Parameters
url body HTTPS webhook URL (required)
events body Array of event types to subscribe to
secret body Optional signing secret for verification
Response
{
  "id": "wh_abc123",
  "url": "https://your-app.com/hooks/sfl",
  "events": ["score.updated", "milestone.achieved", "member.joined"],
  "secret": "whsec_...",
  "created_at": "2026-02-22T10:30:00Z"
}

SDKs & Libraries

JavaScript / Node.js
npm i @skillfocuslab/sdk
Python
pip install skillfocuslab
cURL / REST
Any HTTP client

SDKs are available to Enterprise plan customers. Contact sales for access.

Ready to integrate?

Enterprise API access includes unlimited requests, dedicated support, and custom integrations.

Talk to Sales