Skip to main content
The subjects API allows you to manage the subject catalog and academic areas for your school. Subjects can be organized into academic areas and include details like codes, names, and status.

Academic Areas

Academic areas are used to organize subjects into broader categories (e.g., Sciences, Mathematics, Languages).

List Academic Areas

tenant
School
required
Current tenant school (automatically injected)
id
uuid
Unique identifier for the academic area
school_id
uuid
ID of the school this area belongs to
name
string
Name of the academic area
status
string
Status of the area: active or inactive
created_at
datetime
Timestamp when the area was created
updated_at
datetime
Timestamp when the area was last updated
curl -X GET "https://api.athena-erp.com/academic/areas" \
  -H "Authorization: Bearer YOUR_TOKEN"
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "name": "Sciences",
    "status": "active",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  },
  {
    "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "name": "Mathematics",
    "status": "active",
    "created_at": "2024-01-15T10:32:00Z",
    "updated_at": "2024-01-15T10:32:00Z"
  }
]

Create Academic Area

name
string
required
Name of the academic area
status
string
default:"active"
Status of the area: active or inactive
curl -X POST "https://api.athena-erp.com/academic/areas" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Languages",
    "status": "active"
  }'
{
  "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
  "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "name": "Languages",
  "status": "active",
  "created_at": "2024-01-20T14:25:00Z",
  "updated_at": "2024-01-20T14:25:00Z"
}

Update Academic Area

area_id
uuid
required
ID of the academic area to update
name
string
New name for the academic area
status
string
New status: active or inactive
curl -X PATCH "https://api.athena-erp.com/academic/areas/a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "inactive"
  }'

Delete Academic Area

area_id
uuid
required
ID of the academic area to delete
curl -X DELETE "https://api.athena-erp.com/academic/areas/a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" \
  -H "Authorization: Bearer YOUR_TOKEN"

Subject Catalog

The subject catalog contains all subjects that can be taught at your school.

List Subjects

academic_area_id
uuid
Filter subjects by academic area
id
uuid
Unique identifier for the subject
school_id
uuid
ID of the school this subject belongs to
academic_area_id
uuid
ID of the academic area this subject belongs to
code
string
Subject code (e.g., “MATH101”)
name
string
Full name of the subject
short_name
string
Abbreviated name for the subject
status
string
Status: active or inactive
created_at
datetime
Timestamp when created
updated_at
datetime
Timestamp when last updated
curl -X GET "https://api.athena-erp.com/academic/subjects?academic_area_id=550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer YOUR_TOKEN"
[
  {
    "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "academic_area_id": "550e8400-e29b-41d4-a716-446655440000",
    "code": "BIO101",
    "name": "Biology I",
    "short_name": "Bio I",
    "status": "active",
    "created_at": "2024-01-15T11:00:00Z",
    "updated_at": "2024-01-15T11:00:00Z"
  },
  {
    "id": "c9bf9e57-1685-4c89-bafb-ff5af830be8a",
    "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "academic_area_id": "550e8400-e29b-41d4-a716-446655440000",
    "code": "CHEM101",
    "name": "Chemistry I",
    "short_name": "Chem I",
    "status": "active",
    "created_at": "2024-01-15T11:05:00Z",
    "updated_at": "2024-01-15T11:05:00Z"
  }
]

Create Subject

code
string
required
Subject code (e.g., “MATH101”)
name
string
required
Full name of the subject
academic_area_id
uuid
ID of the academic area this subject belongs to
short_name
string
Abbreviated name for the subject
status
string
default:"active"
Status: active or inactive
curl -X POST "https://api.athena-erp.com/academic/subjects" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "PHYS101",
    "name": "Physics I",
    "short_name": "Phys I",
    "academic_area_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "active"
  }'
{
  "id": "d4e5f6a7-b8c9-4d0e-a1b2-c3d4e5f6a7b8",
  "school_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "academic_area_id": "550e8400-e29b-41d4-a716-446655440000",
  "code": "PHYS101",
  "name": "Physics I",
  "short_name": "Phys I",
  "status": "active",
  "created_at": "2024-01-20T15:30:00Z",
  "updated_at": "2024-01-20T15:30:00Z"
}

Update Subject

subject_id
uuid
required
ID of the subject to update
code
string
New subject code
name
string
New name
short_name
string
New short name
academic_area_id
uuid
New academic area ID
status
string
New status: active or inactive
curl -X PATCH "https://api.athena-erp.com/academic/subjects/d4e5f6a7-b8c9-4d0e-a1b2-c3d4e5f6a7b8" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "short_name": "Physics I"
  }'

Delete Subject

subject_id
uuid
required
ID of the subject to delete
curl -X DELETE "https://api.athena-erp.com/academic/subjects/d4e5f6a7-b8c9-4d0e-a1b2-c3d4e5f6a7b8" \
  -H "Authorization: Bearer YOUR_TOKEN"

Permissions

  • List areas/subjects: Requires read:all or read:grades permission
  • Create/Update/Delete: Requires write:all permission

Build docs developers (and LLMs) love