← 返回
未分类 Key 中文

Coursera Progress

Fetch and display Coursera course enrollment, completion progress, grades, certificates, and upcoming deadlines using the Coursera API. Use this skill whenev...
使用 Coursera API 获取并展示课程注册、完成进度、成绩、证书以及即将到来的截止日期。在需要时使用此技能。
elmoorish elmoorish 来源
未分类 clawhub v0.1.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 324
下载
💾 0
安装
1
版本
#latest

概述

Coursera Progress Skill

Fetch enrollment status, grades, deadlines, and certificates from Coursera via the Coursera REST API v1.


Authentication setup

Coursera uses OAuth 2.0. Two paths:

Path A — Personal access (for learners)

  1. Go to coursera.org/account/api → Generate key
  2. Note the Client ID and Client Secret
  3. Get a token (client credentials flow):
export COURSERA_CLIENT_ID="your_client_id"
export COURSERA_CLIENT_SECRET="your_client_secret"

COURSERA_ACCESS_TOKEN=$(curl -s -X POST \
  "https://api.coursera.com/oauth2/client_credentials/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=$COURSERA_CLIENT_ID&client_secret=$COURSERA_CLIENT_SECRET" \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['access_token'])")

export COURSERA_ACCESS_TOKEN

Path B — Unofficial API (no key needed)

Coursera's public endpoints don't require auth for some queries. Use when the user hasn't set up credentials.


Base URL and headers

https://api.coursera.com/api
AUTH_HEADER="Authorization: Bearer $COURSERA_ACCESS_TOKEN"

Core API calls

Get enrollments for a user

# Get your own user ID first
curl -s "https://api.coursera.com/api/users/v1/me" \
  -H "$AUTH_HEADER"

# Then fetch enrollments
curl -s "https://api.coursera.com/api/enrollments.v1?userId=USER_ID&fields=courseId,enrolledAt,grade,completedAt,certificateCode" \
  -H "$AUTH_HEADER"

Get course details by ID

curl -s "https://api.coursera.com/api/courses.v1?ids=COURSE_ID_1,COURSE_ID_2&fields=name,slug,description,specializations" \
  -H "$AUTH_HEADER"

Get on-demand course progress

curl -s "https://api.coursera.com/api/onDemandCourseCompletions.v1?userId=USER_ID&courseId=COURSE_ID&fields=progressPercent,completedAt,grade" \
  -H "$AUTH_HEADER"

Get assignment deadlines

curl -s "https://api.coursera.com/api/onDemandDeadlineSchedules.v1?courseId=COURSE_ID&fields=deadlineSchedule,moduleIds" \
  -H "$AUTH_HEADER"

Get certificate info

curl -s "https://api.coursera.com/api/certificates.v1?userId=USER_ID&fields=courseId,issuedAt,verifyUrl,grade" \
  -H "$AUTH_HEADER"

Search for courses

curl -s "https://api.coursera.com/api/courses.v1?q=search&query=SEARCH_TERM&fields=name,slug,partnerIds,primaryLanguages" \
  -H "$AUTH_HEADER" \
  | python3 -m json.tool

Displaying results

Active enrollments summary:

Your Coursera Courses
─────────────────────────────────────────────────────
📚 Machine Learning Specialization (Stanford/DeepLearning.AI)
   Progress: 68% complete   Grade: 91.4%
   Next deadline: Mar 28 — Week 4 Programming Assignment

📚 Python for Everybody (University of Michigan)
   Progress: 100% ✅  Grade: 96.7%
   Certificate: Issued Jan 12, 2026
   Verify: https://coursera.org/verify/XXXX

📚 SQL for Data Science (UC Davis)
   Progress: 23%  Grade: —
   Next deadline: Apr 3 — Module 2 Quiz
─────────────────────────────────────────────────────
Certificates earned: 1   Active courses: 2

Upcoming deadlines:

Deadlines (next 14 days):
  Mar 28  Week 4 Programming Assignment  — Machine Learning
  Apr 3   Module 2 Quiz                 — SQL for Data Science
  Apr 10  Peer Review Submission        — Machine Learning

Without API credentials (public lookup)

For course search and public course info:

# Public course info (no auth)
curl -s "https://api.coursera.com/api/courses.v1?q=search&query=python&includes=instructors&fields=name,partnerIds,instructorIds,primaryLanguages,workload" \
  | python3 -m json.tool

For personal data (grades, certificates), credentials are required.


Python helper for parsing progress

import json, subprocess, os

def get_enrollments(user_id):
    token = os.environ["COURSERA_ACCESS_TOKEN"]
    r = subprocess.run(
        ["curl", "-s",
         f"https://api.coursera.com/api/enrollments.v1?userId={user_id}"
         f"&fields=courseId,enrolledAt,grade,completedAt,certificateCode",
         "-H", f"Authorization: Bearer {token}"],
        capture_output=True, text=True)
    return json.loads(r.stdout).get("elements", [])

def upcoming_deadlines(enrollments, days=14):
    from datetime import date, timedelta
    cutoff = (date.today() + timedelta(days=days)).isoformat()
    # Parse deadlines per course and filter by date
    ...

Error handling

ErrorMeaningFix
---------
401 UnauthorizedToken expired or missingRe-run token generation step
403 ForbiddenScope missing on keyRegenerate API key with correct scopes
Empty elements arrayNo enrollments foundConfirm correct user ID
Rate limit (429)Too many requestsBack off 30s; Coursera is ~100 req/min

版本历史

共 1 个版本

  • v0.1.0 当前
    2026-05-07 09:19 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

education

Khan Tutor

elmoorish
使用 Khan Academy 课程分类法和苏格拉底式辅导方法,为解释、练习和提示提供分层支架。在用户想要 ... 时使用此技能。
★ 0 📥 477

Duolingo Tracker

elmoorish
获取并显示Duolingo学习统计:连续天数、XP、联赛、等级、课程进度以及每日/每周摘要。当用户询问Duolingo学习相关情况时使用此技能。
★ 0 📥 336

Temporal Knowledge Graph Synthesizer

elmoorish
主动解析每日会话日志和非结构化记忆文件,提取实体、时间数据和关系,构建结构化知识图谱。
★ 0 📥 338