# Applying to teach with onlinetuition.sg Send an application only with the applicant's permission and explicit consent to being contacted on WhatsApp about tuition assignments. Never assume consent. Read /privacy.html with the applicant. POST /api/teacher-applications on this same website, Content-Type: application/json. No authentication header is needed. No other host or endpoint is used by applicants. Required JSON fields: - submissionId: a UUID. Reuse it for retries of identical answers; generate a new UUID if answers change. Do not change it merely because a request timed out. - name: nonempty string - whatsappNumber: international phone number including + and country code - availability: nonempty text describing regular availability - hasScreenWritingSetup: an explicitly answered boolean - teachingRequirementsConfirmed: true, only after confirming webcam-on teaching and fast stable internet - subjectIds: one or more IDs: {"english":"English","mathematics":"Mathematics","additional_mathematics":"Additional Mathematics","science":"Science","physics":"Physics","chemistry":"Chemistry","biology":"Biology","chinese":"Chinese","malay":"Malay","tamil":"Tamil","history":"History","geography":"Geography","social_studies":"Social Studies","literature":"Literature","economics":"Economics","principles_of_accounts":"Principles of Accounts","general_paper":"General Paper","computing":"Computing","other":"Other"} - levelIds: one or more IDs: {"primary":"Primary","secondary_lower":"Sec 1–2","secondary_upper":"Sec 3–4","jc":"JC","ib":"IB"} - qualificationLevel: one ID: {"school":"School qualification","diploma":"Diploma","undergraduate":"Studying for a degree","bachelors":"Bachelor's degree","masters":"Master's degree","doctorate":"Doctorate","other":"Other"} - qualificationField: nonempty qualification or field of study - teachingStatus: one ID: {"part_time_tutor":"Part-time tutor","full_time_tutor":"Full-time tutor","current_school_teacher":"Current school teacher","former_school_teacher":"Former school teacher","not_taught_yet":"Not taught yet"} - yearsTeaching: number from 0 to 80 - hasTaughtGroupClasses: an explicitly answered boolean - contactConsent: true, only after the applicant agrees to be contacted on WhatsApp about tuition assignments - privacyNoticeVersion: "2026-11-07" Conditional: otherSubject is required when subjectIds includes other. Optional: profileText, profileUrl (http or https only), openingId, channelCode (letters, digits, underscores or hyphens). Do not send empty optional fields. Do not send opening snapshots, expiry, consent timestamps or other fields. Text length limits: {"name":100,"education":3000,"teachingExperience":4000,"subjects":4000,"availability":2000,"qualificationField":200,"otherSubject":120,"profileText":8000,"profileUrl":2048,"channelCode":80,"privacyNoticeVersion":80,"openingField":200,"openingSlot":300}. Maximum request body: 65536 bytes. Current opening IDs and details: [] An absent openingId means joining the tutor pool. A selected opening must be listed above. Both require affirmative contactConsent. 201 {"received":true} confirms receipt. No receipt is given before persistence. 400: correct the answers or refresh the notice/opening; 409: an earlier application with that UUID was received with different answers; For 409, review the answers with the applicant; use a new UUID only if they want a new application. 429: wait 15 minutes; 503/network failure: retain the same UUID and retry the identical answers later. Do not automatically retry repeatedly. Privacy contact: hello@onlinetuition.sg