Skip to content

DoCurious API Reference / types / School

Interface: School

Defined in: types/school.types.ts:34

A school organization registered on the DoCurious platform.

Remarks

Schools form the top of the SA -> Teacher -> Student -> Parent hierarchy. A Head School Admin creates the school record and manages its settings. School-affiliated users (student, teacher, school_admin) reference the school via their User.schoolId.

Example

ts
const school: School = {
  id: 'sch-001',
  createdAt: '2025-08-01T00:00:00Z',
  updatedAt: '2025-08-15T00:00:00Z',
  name: 'Lincoln Elementary',
  city: 'Portland',
  state: 'OR',
  country: 'US',
  timezone: 'America/Los_Angeles',
  allowStudentSelfRegistration: false,
  requireParentalConsent: true,
  studentCount: 320,
  teacherCount: 18,
  classCount: 14,
}

Extends

Properties

academicYearEnd?

optional academicYearEnd: string

Defined in: types/school.types.ts:74

ISO date for the end of the academic year


academicYearStart?

optional academicYearStart: string

Defined in: types/school.types.ts:72

ISO date for the start of the academic year


address?

optional address: string

Defined in: types/school.types.ts:36


allowGifting?

optional allowGifting: boolean

Defined in: types/school.types.ts:58

Whether students and teachers can send challenge gifts


allowStudentSelfRegistration

allowStudentSelfRegistration: boolean

Defined in: types/school.types.ts:87

Whether students can self-register with a school code (vs. admin-only enrollment)


city?

optional city: string

Defined in: types/school.types.ts:37


classCount

classCount: number

Defined in: types/school.types.ts:93


contactEmail?

optional contactEmail: string

Defined in: types/school.types.ts:43


contactPhone?

optional contactPhone: string

Defined in: types/school.types.ts:44


country?

optional country: string

Defined in: types/school.types.ts:39


createdAt

createdAt: string

Defined in: types/common.types.ts:154

ISO 8601 datetime when the entity was created

Inherited from

BaseEntity.createdAt


dataRetentionYears?

optional dataRetentionYears: number

Defined in: types/school.types.ts:84

Number of years to retain student data after departure


defaultStudentSharingScope?

optional defaultStudentSharingScope: "public" | "school_only" | "community"

Defined in: types/school.types.ts:56

Default sharing scope for student Track Records


district?

optional district: string

Defined in: types/school.types.ts:50


gradeLevels?

optional gradeLevels: string[]

Defined in: types/school.types.ts:52

Grade levels offered at this school (e.g., ['K', '1st', '2nd', ...])


gradingPeriodsPerYear?

optional gradingPeriodsPerYear: number

Defined in: types/school.types.ts:78

Number of grading periods per academic year


id

id: string

Defined in: types/common.types.ts:167

Inherited from

BaseEntity.id


optional logo: string

Defined in: types/school.types.ts:48

URL to the school logo image


minAgeWithoutConsent?

optional minAgeWithoutConsent: number

Defined in: types/school.types.ts:82

Minimum age for students without parental consent


name

name: string

Defined in: types/school.types.ts:35


parentNotificationFrequency?

optional parentNotificationFrequency: "immediate" | "daily" | "weekly"

Defined in: types/school.types.ts:64

How often parents receive email digests about their child's activity


publicTrackRecordGallery?

optional publicTrackRecordGallery: boolean

Defined in: types/school.types.ts:60

Whether the school's Track Record Gallery is publicly visible


requireParentalConsent

requireParentalConsent: boolean

Defined in: types/school.types.ts:89

Whether all under-13 students at this school require parental consent


state?

optional state: string

Defined in: types/school.types.ts:38


studentCount

studentCount: number

Defined in: types/school.types.ts:91


surveySenderName?

optional surveySenderName: string

Defined in: types/school.types.ts:68

Display name used as the sender in survey emails


teacherCount

teacherCount: number

Defined in: types/school.types.ts:92


teacherNotificationChannel?

optional teacherNotificationChannel: "both" | "email" | "in_app"

Defined in: types/school.types.ts:66

Channel used for teacher notifications


termSystem?

optional termSystem: "semester" | "trimester" | "quarter"

Defined in: types/school.types.ts:76

Term system used by the school


timezone?

optional timezone: string

Defined in: types/school.types.ts:41

IANA timezone identifier (e.g., "America/New_York")


updatedAt

updatedAt: string

Defined in: types/common.types.ts:156

ISO 8601 datetime when the entity was last modified

Inherited from

BaseEntity.updatedAt


website?

optional website: string

Defined in: types/school.types.ts:49

DoCurious Platform Documentation