Install
$ agentstack add skill-iblai-api-iblai-milestones ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
iblai-milestones
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 learner 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 $IBLAI_API_KEYon every request. - Path vars:
{org}=$IBLAI_ORG(a.k.a.platform_key),
{username} = $IBLAI_USERNAME.
- DELETE is destructive — confirm with the user first.
- Not connected yet? Run
/iblai-loginfirst to populateIBLAI_ORG,
IBLAI_USERNAME, and IBLAI_API_KEY.
Reads
Completions
Course
- GET
/api/catalog/milestones/completions/course/manage/— retrieve one course completion. Params:course_id,user_id. Returnscompletion_percentage,completed,completion_date,completion_data, grading fields. - GET
/api/catalog/milestones/completions/course/catalog/— all course completions for one user, keyed by course id. Params:user_id; optionalfield_key(e.g.completion_percentage,completion_data) returns just that field per course.
Resource
- GET
/api/catalog/milestones/completions/resource/manage/— retrieve one resource completion. Params:resource_id,user_id. Returnsresource_type,completion_percentage,completed,completion_data.
Program
- GET
/api/catalog/milestones/completions/program/query/— query a user's program completion. Params:program_key(required, urlencoded), and one ofuser_id/username. Returns{ "count", "completion_percentage" }(completion_percentageis 0.0–1.0).
Pathway
- GET
/api/catalog/milestones/completions/pathway/query/— query a user's pathway completion. Params:pathway_uuid(required), and one ofuser_id/username. Returns{ "count", "completion_percentage" }(completion_percentageis 0.0–1.0).
Skill points
Block
- GET
/api/catalog/milestones/skill_points/block/— skill points for a block. Param:block_id(URL-encoded). Returns a{ skill: points }map.
Course
- GET
/api/catalog/milestones/skill_points/course/— skill points for a course. Param:course_id(URL-encoded). Returns a{ skill: points }map.
Platform
- GET
/api/catalog/milestones/skill_points/platform/— list platform skill-point records. Params:platform_key(orplatform_org) required; optionalquery,sort(default-id). Returns a paginated{ count, next_page, previous_page, results[] }, each result carryingusername,skill,skill_id,skill_points.
User
- GET
/api/catalog/milestones/skill_points/user/— aggregated skill points for one user. Params:user_id/username. Returns a{ skill: { course_points, block_points, platform_points, total_points } }map.
Writes
Completions
Course
- POST
/api/catalog/milestones/completions/course/manage/— create/update a course completion. Body acceptscourse_id,user_id, and anyCourseCompletionfield:
``json { "course_id": "course-v1:edX+DemoX+Demo_Course", "user_id": 42, "completed": true, "completion_percentage": 95.3 } ``
Resource
- POST
/api/catalog/milestones/completions/resource/manage/— create/update a resource completion. Body:resource_id(int, required),user_id(int, required), optionalcompleted,completion_percentage(0.0–1.0),completion_date,completion_data:
``json { "resource_id": 11, "user_id": 42, "completed": true, "completion_percentage": 1.0 } ``
Skill points
Block
- POST
/api/catalog/milestones/skill_points/block/— set a block's skill points:
``json { "block_id": "block-v1:test+test+test+type@html+block@2d68d2674abb47b5b676e822741acc25", "point_data": { "test-skill": 4.5, "another-skill": 6.2 } } ``
Course
- POST
/api/catalog/milestones/skill_points/course/— set a course's skill points:
``json { "course_id": "course-v1:test+test+test", "point_data": { "test-skill": 63.0, "another-skill": 45.0 } } ``
Platform
- POST
/api/catalog/milestones/skill_points/platform/— update a user's platform skill points. Body:username,platform_key,point_data, optionaloverwrite(defaulttrue):
``json { "username": "student1", "platform_key": "test-platform", "point_data": { "test-skill": 63.0, "another-skill": 45.0 }, "overwrite": false } ``
- DELETE
/api/catalog/milestones/skill_points/platform/— delete one platform skill-point record. Params:skill_point_id(required),platform_key(orplatform_org). Destructive — confirm with the user first. - POST
/api/catalog/milestones/skill_points/platform/bulk/— bulk update platform skill points (platform-admin access). Body:skill_point_data(required; array of per-user entries — each entry takesusername/user_id,point_data, optionaloverwrite), optional top-levelplatform_keyapplied to every entry:
``json { "platform_key": "test-platform", "skill_point_data": [ { "username": "student1", "point_data": { "test-skill": 63.0 }, "overwrite": false }, { "user_id": 7, "point_data": { "skill-1": 31.0 }, "overwrite": false } ] } ``
- POST
/api/catalog/milestones/skill_points/platform/group/— update platform skill points for a group. Body:group_id,platform_key,point_data, optionaloverwrite:
``json { "group_id": 123, "platform_key": "test-platform", "point_data": { "test-skill": 63.0, "another-skill": 45.0 }, "overwrite": false } ``
Example
Look up a learner'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@; program keys like program-v1:main+test; pathways use a UUID (pathway_uuid). URL-encode these in query strings (: → %3A, + → %2B, @ → %40).
platform_keyis the org key ($IBLAI_ORG) on the wire for skill-point
operations.
overwrite(defaulttrue) 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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.