SuperAPI AI Directory

iblai-api-milestone

Coding & development

View repository

Updated 10-15 22:16

About this skill

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 $IBLAI_API_KEY on 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-api-login first to populate IBLAI_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. Returns completion_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; optional field_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. Returns resource_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 of user_id/username. Returns { "count", "completion_percentage" } (completion_percentage is 0.0–1.0).

Pathway

  • GET /api/catalog/milestones/completions/pathway/query/ — query a user's pathway completion. Params: pathway_uuid (required), and one of user_id/username. Returns { "count", "completion_percentage" } (completion_percentage is 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 (or platform_org) required; optional query, sort (default -id). Returns a paginated { count, next_page, previous_page, results[] }, each result carrying username, 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 accepts course_id, user_id, and any CourseCompletion field:
    { "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), optional completed, completion_percentage (0.0–1.0), completion_date, completion_data:
    { "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:
    { "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:
    { "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, optional overwrite (default true):
    { "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 (or platform_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 takes username/user_id, point_data, optional overwrite), optional top-level platform_key applied to every entry:
    { "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, optional overwrite:
    { "group_id": 123, "platform_key": "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).
  • platform_key is the org key ($IBLAI_ORG) 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.