This document provides details on the available endpoints and their usage for the Competency Framework API.
http://localhost:8000/api
Authentication is not implemented in this version but would be added in a production environment.
The main container for a set of competency definitions and rubrics.
{
"_id": "string",
"name": "string",
"description": "string",
"version": "string",
"competencyDefinitions": ["string (CompetencyDefinition ID)"],
"rubrics": ["string (Rubric ID)"],
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string",
"organization": "string"
}
}Represents a specific competency within a framework.
{
"_id": "string",
"title": "string",
"description": "string",
"category": "string",
"abbreviation": "string",
"competencyGroup": "string",
"framework": "string (CompetencyFramework ID)",
"criteria": ["string (RubricCriterion ID)"],
"directAssociations": ["string (CompetencyDefinition ID)"],
"resourceAssociations": ["string (ResourceAssociation ID)"],
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string"
}
}Represents an indirect association between competency definitions.
{
"_id": "string",
"associationType": "INDIRECT_ASSOCIATION",
"source": "string (CompetencyDefinition ID)",
"destination": "string (CompetencyDefinition ID)",
"description": "string",
"framework": "string (CompetencyFramework ID)",
"weight": "number",
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string"
}
}A collection of criteria for evaluating competencies.
{
"_id": "string",
"name": "string",
"description": "string",
"framework": "string (CompetencyFramework ID)",
"criteria": ["string (RubricCriterion ID)"],
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string"
}
}A specific evaluation criterion for a competency.
{
"_id": "string",
"name": "string",
"description": "string",
"competencyDefinition": "string (CompetencyDefinition ID)",
"rubric": "string (Rubric ID)",
"levels": ["string (RubricCriterionLevel ID)"],
"weight": "number",
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string"
}
}A specific level within a criterion for evaluating competency proficiency.
{
"_id": "string",
"level": "number",
"name": "string",
"description": "string",
"criterion": "string (RubricCriterion ID)",
"examples": ["string"],
"metadata": {
"createdAt": "date",
"updatedAt": "date",
"createdBy": "string"
}
}GET /frameworks
Returns all competency frameworks.
GET /frameworks/:id
Returns a specific competency framework by ID.
POST /frameworks
Request Body:
{
"name": "string (required)",
"description": "string",
"version": "string (required)",
"createdBy": "string",
"organization": "string"
}PATCH /frameworks/:id
Request Body:
{
"name": "string",
"description": "string",
"version": "string",
"organization": "string"
}DELETE /frameworks/:id
GET /frameworks/:id/definitions
GET /frameworks/:id/rubrics
GET /definitions
GET /definitions/:id
POST /definitions
Request Body:
{
"title": "string (required)",
"description": "string",
"category": "string",
"abbreviation": "string",
"competencyGroup": "string",
"framework": "string (required, CompetencyFramework ID)",
"createdBy": "string"
}PATCH /definitions/:id
Request Body:
{
"title": "string",
"description": "string",
"category": "string",
"abbreviation": "string",
"competencyGroup": "string"
}DELETE /definitions/:id
GET /definitions/:id/direct-associations
POST /definitions/:id/direct-associations
Request Body:
{
"targetDefinitionId": "string (required, CompetencyDefinition ID)"
}DELETE /definitions/:id/direct-associations/:targetId
GET /associations
GET /associations/framework/:frameworkId
GET /associations/:id
POST /associations
Request Body:
{
"source": "string (required, CompetencyDefinition ID)",
"destination": "string (required, CompetencyDefinition ID)",
"description": "string",
"framework": "string (CompetencyFramework ID)",
"weight": "number",
"createdBy": "string"
}PATCH /associations/:id
Request Body:
{
"description": "string",
"weight": "number"
}DELETE /associations/:id
GET /rubrics
GET /rubrics/:id
POST /rubrics
Request Body:
{
"name": "string (required)",
"description": "string",
"framework": "string (required, CompetencyFramework ID)",
"createdBy": "string"
}PATCH /rubrics/:id
Request Body:
{
"name": "string",
"description": "string"
}DELETE /rubrics/:id
GET /rubrics/:id/criteria
GET /criteria
GET /criteria/:id
POST /criteria
Request Body:
{
"name": "string (required)",
"description": "string",
"competencyDefinition": "string (CompetencyDefinition ID)",
"rubric": "string (required, Rubric ID)",
"weight": "number",
"createdBy": "string"
}PATCH /criteria/:id
Request Body:
{
"name": "string",
"description": "string",
"weight": "number"
}DELETE /criteria/:id
GET /criteria/:id/levels
GET /levels
GET /levels/:id
POST /levels
Request Body:
{
"level": "number (required)",
"name": "string",
"description": "string (required)",
"criterion": "string (required, RubricCriterion ID)",
"examples": ["string"],
"createdBy": "string"
}PATCH /levels/:id
Request Body:
{
"name": "string",
"description": "string",
"examples": ["string"]
}DELETE /levels/:id
All endpoints return appropriate HTTP status codes:
- 200: Success
- 201: Created
- 400: Bad Request
- 404: Not Found
- 500: Server Error
Error responses include a message field explaining the error.