iblai/api

iblai-api-milestone

Read and write an ibl.ai organization's catalog milestones via the platform API — course, resource, program, and pathway completions, plus skill points at block, course, platform, and user level (including bulk and group updates).

First seen Jul 15, 2026

Installation

$ npx skills add iblai/api --skill iblai-api-milestone

Summary

  • Read and write an ibl.ai organization's catalog milestones via the platform API — course, resource, program, and pathway completions, plus skill points at block, course, platform, and user level (including bulk and group updates).
  • Use when querying or recording user progress and skill-point totals.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from iblai/api · top by installs.

npx skills add iblai/api

Browse all from iblai/api

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 15
License LICENSE
Default branch main
Open issues 1
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,397 B
  • docs SUMMARY.md 328 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 6 installs

SKILL.md

iblai-api-milestone

Read and write an organization's catalog milestones: completion records for courses, resources, programs, and pathways, and skill points scoped to a block, a course, the platform, or a user (with bulk and group updates). Use when querying or recording user progress and skill-point totals.

Auth & conventions

  • Base URL: https://api.iblai.app/dm — these are Data Manager (DM)

endpoints, so the /dm prefix is required; the /api/catalog/milestones/… paths below are appended to it (e.g. https://api.iblai.app/dm/api/catalog/milestones/completions/course/manage/).

  • Header: Authorization: Api-Token $IBLAIAPIKEY on every request.
  • Path vars: {org} = $IBLAIORG (a.k.a. platformkey),

{username} = $IBLAI_USERNAME.

  • DELETE is destructive — confirm with the user first.
  • Not connected yet? Run /iblai-api-login first to populate IBLAI_ORG,

IBLAIUSERNAME, and IBLAIAPI_KEY.

Reads

Completions

Course

  • GET /api/catalog/milestones/completions/course/manage/ — retrieve one course completion. Params: courseid, userid. Returns completionpercentage, completed, completiondate, completion_data, grading fields.
  • GET /api/catalog/milestones/completions/course/catalog/ — all course completions for one user, keyed by course id. Params: userid; optional fieldkey (e.g. completionpercentage, completiondata) returns just that field per course.

Resource

  • GET /api/catalog/milestones/completions/resource/manage/ — retrieve one resource completion. Params: resourceid, userid. Returns resourcetype, completionpercentage, completed, completion_data.

Program

  • GET /api/catalog/milestones/completions/program/query/ — query a user's program completion. Params: programkey (required, urlencoded), and one of userid/username. Returns { "count", "completionpercentage" } (completionpercentage is 0.0–1.0).

Pathway

  • GET /api/catalog/milestones/completions/pathway/query/ — query a user's pathway completion. Params: pathwayuuid (required), and one of userid/username. Returns { "count", "completionpercentage" } (completionpercentage is 0.0–1.0).

Skill points

Block

  • GET /api/catalog/milestones/skillpoints/block/ — skill points for a block. Param: blockid (URL-encoded). Returns a { skill: points } map.

Course

  • GET /api/catalog/milestones/skillpoints/course/ — skill points for a course. Param: courseid (URL-encoded). Returns a { skill: points } map.

Platform

  • GET /api/catalog/milestones/skillpoints/platform/ — list platform skill-point records. Params: platformkey (or platformorg) required; optional query, sort (default -id). Returns a paginated { count, nextpage, previouspage, results[] }, each result carrying username, skill, skillid, skill_points.

User

  • GET /api/catalog/milestones/skillpoints/user/ — aggregated skill points for one user. Params: userid/username. Returns a { skill: { coursepoints, blockpoints, platformpoints, totalpoints } } map.

Writes

Completions

Course

  • POST /api/catalog/milestones/completions/course/manage/ — create/update a course completion. Body accepts courseid, userid, and any CourseCompletion field:

``json { "courseid": "course-v1:edX+DemoX+DemoCourse", "userid": 42, "completed": true, "completionpercentage": 95.3 } ``

Resource

  • POST /api/catalog/milestones/completions/resource/manage/ — create/update a resource completion. Body: resourceid (int, required), userid (int, required), optional completed, completionpercentage (0.0–1.0), completiondate, completion_data:

``json { "resourceid": 11, "userid": 42, "completed": true, "completion_percentage": 1.0 } ``

Skill points

Block

  • POST /api/catalog/milestones/skill_points/block/ — set a block's skill points:

``json { "blockid": "block-v1:test+test+test+type@html+block@2d68d2674abb47b5b676e822741acc25", "pointdata": { "test-skill": 4.5, "another-skill": 6.2 } } ``

Course

  • POST /api/catalog/milestones/skill_points/course/ — set a course's skill points:

``json { "courseid": "course-v1:test+test+test", "pointdata": { "test-skill": 63.0, "another-skill": 45.0 } } ``

Platform

  • POST /api/catalog/milestones/skillpoints/platform/ — update a user's platform skill points. Body: username, platformkey, point_data, optional overwrite (default true):

``json { "username": "student1", "platformkey": "test-platform", "pointdata": { "test-skill": 63.0, "another-skill": 45.0 }, "overwrite": false } ``

  • DELETE /api/catalog/milestones/skillpoints/platform/ — delete one platform skill-point record. Params: skillpointid (required), platformkey (or platform_org). Destructive — confirm with the user first.
  • POST /api/catalog/milestones/skillpoints/platform/bulk/ — bulk update platform skill points (platform-admin access). Body: skillpointdata (required; array of per-user entries — each entry takes username/userid, pointdata, optional overwrite), optional top-level platformkey applied to every entry:

``json { "platformkey": "test-platform", "skillpointdata": [ { "username": "student1", "pointdata": { "test-skill": 63.0 }, "overwrite": false }, { "userid": 7, "pointdata": { "skill-1": 31.0 }, "overwrite": false } ] } ``

  • POST /api/catalog/milestones/skillpoints/platform/group/ — update platform skill points for a group. Body: groupid, platformkey, pointdata, optional overwrite:

``json { "groupid": 123, "platformkey": "test-platform", "point_data": { "test-skill": 63.0, "another-skill": 45.0 }, "overwrite": false } ``

Example

Look up a user's course completion:

curl -G \
  "https://api.iblai.app/dm/api/catalog/milestones/completions/course/manage/" \
  -H "Authorization: Api-Token $IBLAI_API_KEY" \
  --data-urlencode "course_id=course-v1:edX+DemoX+Demo_Course" \
  --data-urlencode "user_id=10"

Notes

  • Id formats: course ids are opaque keys like course-v1:edX+DemoX+Demo_Course;

block ids like block-v1:test+test+test+type@html+block@<hash>; program keys like program-v1:main+test; pathways use a UUID (pathway_uuid). URL-encode these in query strings (: → %3A, + → %2B, @ → %40).

  • platformkey is the org key ($IBLAIORG) on the wire for skill-point

operations.

  • overwrite (default true) on platform/bulk/group updates replaces the

user's existing points for the given skills; set false to merge/add.

  • The course catalog/ read returns all of a single user's course

completions at once; pass field_key to slice out one field per course.

  • Platform bulk updates require platform-admin level access.