运作方式
请求的处理流程
您的系统使用自己的API密钥请求某位学生或某个班级的数据,API以只读方式返回相应记录。
dns您的系统您的学生信息管理系统或报表工具。
arrow_forwardkey您的API密钥随每个请求一同发送,并与您的学校绑定。
arrow_forwardapiSmrt English API面向学生和班级数据的只读接口。
arrow_forwardtable_view您的记录以JSON格式返回的成绩、考勤和班级学生名单。
Smrt English API
Get Classes List Endpoint
Endpoint Details
Endpoint: GET /smrtapi/v1/classes
Purpose: Retrieve a paginated list of classes with summary statistics. Perfect for class roster management, teacher assignment tracking, and institutional reporting.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page |
integer | 1 | Page number (must be ≥ 1) |
limit |
integer | 50 | Results per page (1-100) |
status |
integer | - | Filter by status (0=inactive, 1=active) |
course_id |
integer | - | Filter by specific course |
teacher_id |
integer | - | Filter by teacher ID |
teacher_email |
string | - | Filter by teacher email address |
search |
string | - | Search by class title or class code |
Headers Required
X-API-Key: your_institution_api_key
Example Requests
# Get first page (default 50 classes) curl -H "X-API-Key: your_institution_api_key" \ https://smrtenglish.com/smrtapi/v1/classes # Get specific page with custom limit curl -H "X-API-Key: your_institution_api_key" \ "https://smrtenglish.com/smrtapi/v1/classes?page=2&limit=25" # Filter by active classes only curl -H "X-API-Key: your_institution_api_key" \ "https://smrtenglish.com/smrtapi/v1/classes?status=1" # Filter by teacher email curl -H "X-API-Key: your_institution_api_key" \ "https://smrtenglish.com/smrtapi/v1/[email protected]" # Filter by course curl -H "X-API-Key: your_institution_api_key" \ "https://smrtenglish.com/smrtapi/v1/classes?course_id=12"
Response Example (abbreviated):
{
"success": true,
"data": [
{
"class_id": 456,
"class_title": "English 101 - Section A",
"class_code": "ENG101-A",
"class_status": 1,
"class_room": "Room 204",
"class_dateadded": "2024-01-10",
"course": {
"course_id": 12,
"course_name": "General English"
},
"teacher": {
"teacher_id": 78,
"name": "Jane Smith",
"email": "[email protected]"
},
"student_count": 25,
"summary": {
"average_completion_rate": 82.5,
"average_score": 78.3,
"total_engagement_minutes": 1250.5
},
"assignment_activity": {
"has_assignments": true,
"assignment_count": 15,
"first_assignment_date": "2024-01-15",
"last_assignment_date": "2024-10-05",
"students_enrolled": 25,
"students_with_submissions": 22,
"students_without_submissions": 3
}
}
],
"pagination": {
"page": 1,
"limit": 50,
"total_count": 15,
"total_pages": 1,
"has_next": false,
"has_prev": false
}
}
Use Cases
- Class Roster Export - Pull complete class lists for institutional reporting
- Teacher Workload Analysis - Track how many classes each teacher manages
- Course Enrollment Reports - See how many sections exist for each course
- Performance Comparison - Compare performance metrics across different classes
- Active Class Monitoring - Track which classes are currently active vs archived
- Integration with Scheduling - Sync class data with scheduling systems
Response Format
Returns a paginated list of classes with summary statistics:
Response Fields - Class Object
| Field | Type | Description |
|---|---|---|
class_id |
integer | Unique class identifier |
class_title |
string | Class name/title |
class_code |
string | Class code/section identifier |
class_status |
integer | Status (0=inactive, 1=active) |
student_count |
integer | Number of enrolled students |
course.course_id |
integer | Associated course ID |
teacher.name |
string | Primary teacher name |
summary.average_completion_rate |
float | Average completion rate (0-100) |
summary.average_score |
float | Average assignment score (0-100) |
Pagination Object:
page- Current page numberlimit- Results per pagetotal_count- Total classes matching filtertotal_pages- Total pages availablehas_next- Boolean, true if more pages existhas_prev- Boolean, true if previous page exists
Filtering Best Practices
- Use
status=1to get only active classes for current reporting - Use
teacher_emailto get all classes for a specific teacher - Use
course_idto see all sections of a particular course - Combine filters for precise queries (e.g., active classes for a specific teacher)
Example: Get All Classes for a Teacher
import requests api_key = "your_institution_api_key" teacher_email = "[email protected]" base_url = "https://smrtenglish.com/smrtapi/v1/classes" headers = {"X-API-Key": api_key} response = requests.get( base_url, headers=headers, params={"teacher_email": teacher_email, "status": 1} ) data = response.json() classes = data["data"] print(f"Teacher {teacher_email} has {len(classes)} active classes") for cls in classes: print(f" - {cls['class_title']} ({cls['student_count']} students)")
Note: For detailed class data including full student roster with individual progress, use the Get Single Class endpoint.