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
Interactive Feedback Tester
Test the interactive feedback endpoint with custom text and criteria.
AI Tutor Tester
Test the AI Tutor with different personas and structured feedback.
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 OK | The request was successful. |
400 Bad Request | A required field is missing from your request body, or the data is in the wrong format. |
401 Unauthorized | Your API key is missing, invalid, or inactive. |
402 Payment Required | Your account does not have enough credits to perform this action. |
500 Internal Server Error | An 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/statusendpoint interactively. - api_interactive_feedback_tester.html: Test
/interactive-feedbackwith sample text and criteria. - api_smart_marker_tester.html: Test
/smart-essay-markerwith essay samples. - api_ai_tutor_tester.html: Test
/ai-tutorwith different personas. - api_tools_tester.html: A unified tester for
/reference-check, and/full-reference-check.