Skip to content
Honen Academy

learning

One learner's graded project: rubric grade + submission (form field responses, etc.).

One learner's graded project: rubric grade + submission (form field responses, etc.).

OpenAPI specification
POST/api/v1/learning/project-results

Authentication

bearerAuth

Request

curl --globoff --request POST \
  --url 'https://honen.com/api/v1/learning/project-results' \
  --header 'Authorization: Bearer <BEARER_TOKEN>' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "userId": "<userId>",
  "projectId": "<projectId>"
}'

Replace credential and <field> placeholders with your own values. URL placeholders appear as %3Cfield%3E. Review the example values before sending your request.

Use the sample JSON body as your starting point, and enter values that match the endpoint's schema.

Request body schema or example

{
  "type": "object",
  "properties": {
    "userId": {
      "type": "string"
    },
    "projectId": {
      "type": "string"
    },
    "attemptId": {
      "type": "string"
    }
  },
  "required": [
    "userId",
    "projectId"
  ]
}

Responses

200Command result.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        true
      ]
    },
    "data": {
      "type": "object",
      "properties": {
        "projectTitle": {
          "type": "string"
        },
        "projectType": {
          "type": "string"
        },
        "attempts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "attemptNumber": {
                "type": "number"
              },
              "score": {
                "type": "number"
              },
              "maxScore": {
                "type": "number"
              },
              "submittedAt": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "id",
              "attemptNumber",
              "score",
              "maxScore",
              "submittedAt"
            ]
          }
        },
        "selected": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "attemptNumber": {
              "type": "number"
            },
            "score": {
              "type": "number"
            },
            "maxScore": {
              "type": "number"
            },
            "submittedAt": {
              "type": "string",
              "nullable": true
            },
            "overallFeedback": {
              "type": "string",
              "nullable": true
            },
            "criteria": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "criterion": {
                    "type": "string"
                  },
                  "score": {
                    "type": "number"
                  },
                  "maxScore": {
                    "type": "number"
                  },
                  "feedback": {
                    "type": "string"
                  }
                },
                "required": [
                  "criterion",
                  "score",
                  "maxScore",
                  "feedback"
                ]
              }
            },
            "form": {
              "type": "object",
              "properties": {
                "config": {
                  "description": "Arbitrary JSON value."
                },
                "submission": {
                  "type": "object",
                  "additionalProperties": {
                    "description": "Arbitrary JSON value."
                  }
                }
              },
              "required": [
                "config",
                "submission"
              ],
              "nullable": true
            },
            "submission": {
              "description": "Arbitrary JSON value."
            }
          },
          "required": [
            "id",
            "attemptNumber",
            "score",
            "maxScore",
            "submittedAt",
            "overallFeedback",
            "criteria",
            "form",
            "submission"
          ],
          "nullable": true
        }
      },
      "required": [
        "projectTitle",
        "projectType",
        "attempts",
        "selected"
      ]
    }
  },
  "required": [
    "success",
    "data"
  ]
}
400Malformed JSON request body.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        false
      ]
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resolution": {
          "type": "string"
        },
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "details": {
          "nullable": true
        }
      },
      "required": [
        "code",
        "message",
        "resolution"
      ]
    }
  },
  "required": [
    "success",
    "error"
  ]
}
401Missing or invalid Connector credentials.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        false
      ]
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resolution": {
          "type": "string"
        },
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "details": {
          "nullable": true
        }
      },
      "required": [
        "code",
        "message",
        "resolution"
      ]
    }
  },
  "required": [
    "success",
    "error"
  ]
}
403Connector policy does not permit this command.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        false
      ]
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resolution": {
          "type": "string"
        },
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "details": {
          "nullable": true
        }
      },
      "required": [
        "code",
        "message",
        "resolution"
      ]
    }
  },
  "required": [
    "success",
    "error"
  ]
}
404Unknown command.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        false
      ]
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resolution": {
          "type": "string"
        },
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "details": {
          "nullable": true
        }
      },
      "required": [
        "code",
        "message",
        "resolution"
      ]
    }
  },
  "required": [
    "success",
    "error"
  ]
}
422Input validation error.
{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean",
      "enum": [
        false
      ]
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "resolution": {
          "type": "string"
        },
        "errors": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "details": {
          "nullable": true
        }
      },
      "required": [
        "code",
        "message",
        "resolution"
      ]
    }
  },
  "required": [
    "success",
    "error"
  ]
}