API Hub & Documentation

Welcome to the API hub. Use the links below to test the various API endpoints live, or review the comprehensive documentation on this page.


Available Test Pages

API Status Tester

Check the status of an API key and view remaining credits.

Interactive Feedback Tester

Test the interactive feedback endpoint with custom text and criteria.

Smart Essay Marker Tester

Test the smart essay marking endpoint.

AI Tutor Tester

Test the AI Tutor with different personas and structured feedback.

AI Tools Tester

Test auxiliary tools like the AI Detector and Reference Checker.


Feedback Flow API Documentation

Version 2.0 | Last Updated: September 12, 2025

Welcome

Welcome to the Feedback Flow API! Our API provides programmatic access to our powerful suite of AI-driven educational tools, allowing you to integrate automated marking, feedback generation, and content analysis directly into your own applications and workflows.

This guide will walk you through the authentication process, available endpoints, error codes, and provide hands-on examples (cURL, Python) to get you started quickly.

Getting Started

Prerequisites

To use the Feedback Flow API, you must have an active user account on our main platform. All API usage is billed against the credit balance of this account.

Authentication

Once your account is set up, a Feedback Flow administrator will generate and provide you with a unique API key. This key links all API requests to your account. You must include your API key in the X-API-Key header of every request.

X-API-Key: YOUR_API_KEY_HERE

Requests made without a valid key will result in a 401 Unauthorized error.

Base URL

All API endpoints are prefixed with the following base URL. Think of this as the main address for the API; you will always append a specific endpoint path to this address to make a request.

http://3.11.66.131/api/v1

For example, to reach the /account/status endpoint, you would combine the base URL and the endpoint to form the full request URL: http://3.11.66.131/api/v1/account/status. The /v1 indicates that you are using Version 1 of the API.

Endpoints

1. /account/status

Check the status of your API key and see the remaining credit balance on your associated account.

Method: GET
Headers: X-API-Key

Success Response (200 OK)
{
  "api_key_status": "active",
  "business_name": "Your Business Name",
  "credits_remaining": 985
}

Note: credits_remaining will show -1 for unlimited credits.

cURL Example
curl -X GET 'http://3.11.66.131/api/v1/account/status' -H 'X-API-Key: YOUR_API_KEY_HERE'
Python Example
import requests

api_key = "YOUR_API_KEY_HERE"
url = "http://3.11.66.131/api/v1/account/status"
headers = {"X-API-Key": api_key}

response = requests.get(url, headers=headers)
if response.status_code == 200:
    print("Success:", response.json())
else:
    print("Error:", response.status_code, response.text)

2. /interactive-feedback

Generate structured, AI-powered feedback based on specific marking criteria.

Method: POST
Headers: X-API-Key, Content-Type: application/json

Request Body
{
  "student_text": "The student's full essay or text goes here.",
  "marking_criteria": [
    "Clarity of argument",
    "Use of evidence"
  ]
}
Success Response (200 OK)
{
  "feedback_breakdown": [
    {
      "criterion": "Clarity of argument",
      "feedback": "The main argument is identifiable, but it gets lost in the second paragraph.",
      "suggestion": "Try to start each paragraph with a clear topic sentence.",
      "confidence_score": 0.95
    }
  ]
}
cURL Example
curl -X POST 'http://3.11.66.131/api/v1/interactive-feedback' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "student_text": "The industrial revolution was a pivotal moment in history.",
  "marking_criteria": ["Introduction", "Historical Accuracy"]
}'

3. /smart-essay-marker

Automatically mark a full essay, providing detailed qualitative feedback broken down by each criterion.

Method: POST
Headers: X-API-Key, Content-Type: application/json

Request Body
{
  "essay_text": "The full text of the student's essay.",
  "marking_criteria": [
    "Clarity of argument",
    "Use of evidence"
  ]
}
Success Response (200 OK)
{
  "overall_recommendations": "This is a promising draft. The main areas for improvement are strengthening the evidence and ensuring the conclusion directly summarizes the key points discussed.",
  "referencing_note": "Remember to use a consistent citation style throughout the work.",
  "criteria_feedback": [
    {
      "criterion": "Use of evidence",
      "assessment": "Not Met",
      "how_it_was_met": "The essay currently relies on general statements without specific support.",
      "quoted_sentence": "While it connects us, it can also create distance.",
      "areas_for_improvement": "Incorporate data, studies, or specific examples to substantiate your claims."
    }
  ]
}
cURL Example
curl -X POST 'http://3.11.66.131/api/v1/smart-essay-marker' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "essay_text": "The entire essay text goes here...",
  "marking_criteria": ["Assess the use of historical evidence"]
}'

4. /ai-tutor

Provide formative, structured feedback on a student's draft with selectable tutor personas.

Method: POST
Headers: X-API-Key, Content-Type: application/json

Request Body
{
  "student_draft": "The student's draft text.",
  "mode": "general",
  "persona": "encouraging"
}

Note: persona is optional ("encouraging" or "direct"). mode can be "general" or "rubric".

Success Response (200 OK)
{
  "feedback_points": [
    {
      "topic": "Clarity",
      "feedback": "This sentence is a great start! To make it even stronger, you could use more descriptive language.",
      "suggestion": "Instead of 'some issues', you could specify what they are, for example: 'our plan has some logistical and budgetary issues.'",
      "quote": "our plan has some issues"
    }
  ]
}
cURL Example
curl -X POST 'http://3.11.66.131/api/v1/ai-tutor' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "student_draft": "The industrial revolution was very important.",
  "mode": "general",
  "persona": "direct"
}'

5. /reference-check (AI Content Detector)

Analyzes a document to assess the likelihood of it being AI-generated.

Method: POST
Headers: X-API-Key, Content-Type: application/json

Request Body
{
  "document_text": "The document content to be analyzed."
}
Success Response (200 OK)
{
  "ai_probability_score": 0.88,
  "highlighted_sentences": [
    "The intricate tapestry of modern society is woven with the threads of technological advancement."
  ],
  "summary": "The text shows strong indicators of AI generation, particularly in its sentence structure."
}
cURL Example
curl -X POST 'http://3.11.66.131/api/v1/reference-check' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "document_text": "The theory of constructive alignment is a cornerstone of modern pedagogical design..."
}'

6. /full-reference-check

A comprehensive tool to validate reference formatting and (optionally) check for semantic alignment.

Method: POST
Headers: X-API-Key, Content-Type: application/json

Request Body
{
  "document_text": "The full text of the document, including in-text citations and a bibliography.",
  "style": "APA",
  "enable_semantic_check": true
}

Note: Supported style values are "APA", "Harvard", "MLA", and "Chicago".

Success Response (200 OK)
{
  "citation_analysis": {
    "style_used": "APA",
    "in_text_citation_count": 3,
    "reference_list_count": 2,
    "matched_references": [ "Smith, 2020" ],
    "unmatched_in_text_citations": [ "Jones, 2019", "Williams, 2021" ]
  },
  "semantic_analysis": [
    {
      "citation": "(Smith, 2020)",
      "student_argument_context": "According to Smith (2020), the results were conclusive.",
      "analysis": {
        "ok": true,
        "rationale": "The source likely discusses conclusive results, aligning with the student's claim.",
        "suggested_action": "Ensure the specific details from the source are accurately represented.",
        "confidence": 0.9
      }
    }
  ]
}
cURL Example
curl -X POST 'http://3.11.66.131/api/v1/full-reference-check' \
-H 'X-API-Key: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
  "document_text": "The theory of constructive alignment... (Biggs, 2014). References: Biggs, J. (2014)...",
  "style": "APA",
  "enable_semantic_check": true
}'

Error Codes

The API uses standard HTTP status codes to indicate the success or failure of a request.

Code Meaning
200 OKThe request was successful.
400 Bad RequestA required field is missing from your request body, or the data is in the wrong format.
401 UnauthorizedYour API key is missing, invalid, or inactive.
402 Payment RequiredYour account does not have enough credits to perform this action.
500 Internal Server ErrorAn unexpected error occurred on our end while processing your request.

Appendix: API Testing Tools (HTML)

The following HTML tools are included for developers to directly test endpoints in a browser without needing Postman or code setup:

  • api_status_tester.html: Test the /account/status endpoint interactively.
  • api_interactive_feedback_tester.html: Test /interactive-feedback with sample text and criteria.
  • api_smart_marker_tester.html: Test /smart-essay-marker with essay samples.
  • api_ai_tutor_tester.html: Test /ai-tutor with different personas.
  • api_tools_tester.html: A unified tester for /reference-check, and /full-reference-check.