> For the complete documentation index, see [llms.txt](https://guide.fariaedu.com/integrations-portal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.fariaedu.com/integrations-portal/schoolsbuddy/public-rest-apis/students.md).

# Students

## GET /api/v1/Students

> Gets a paginated list of students

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentPublicDataDtoListPagedStudentFilterResponseDto":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"errors":{"type":"array","items":{"type":"string"},"nullable":true},"messageTranslationParameters":{"nullable":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/StudentPublicDataDto"},"nullable":true},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"firstPage":{"type":"string","format":"uri","nullable":true},"lastPage":{"type":"string","format":"uri","nullable":true},"totalPages":{"type":"integer","format":"int32"},"totalRecords":{"type":"integer","format":"int32"},"nextPage":{"type":"string","format":"uri","nullable":true},"previousPage":{"type":"string","format":"uri","nullable":true},"baseUri":{"type":"string","format":"uri","nullable":true},"searchParameters":{"type":"array","items":{"$ref":"#/components/schemas/StringStringKeyValuePair"},"nullable":true}},"additionalProperties":false},"StudentPublicDataDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"organisationId":{"type":"integer","format":"int32"},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"email":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"isArchived":{"type":"boolean"},"updatable":{"type":"boolean"}},"additionalProperties":false},"StringStringKeyValuePair":{"type":"object","properties":{"key":{"type":"string","nullable":true},"value":{"type":"string","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students":{"get":{"tags":["Students"],"summary":"Gets a paginated list of students","parameters":[{"name":"IncludeArchived","in":"query","schema":{"type":"boolean"}},{"name":"Search","in":"query","schema":{"maxLength":200,"type":"string"}},{"name":"Grade","in":"query","schema":{"maxLength":100,"type":"string"}},{"name":"HomeroomClass","in":"query","schema":{"maxLength":100,"type":"string"}},{"name":"House","in":"query","schema":{"maxLength":100,"type":"string"}},{"name":"HomeroomAdvisorId","in":"query","schema":{"type":"string"}},{"name":"SCStudentIds","in":"query","schema":{"type":"array","items":{"type":"integer","format":"int32"}}},{"name":"StudentIds","in":"query","schema":{"type":"array","items":{"type":"string"}}},{"name":"PageNumber","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":2000,"minimum":1,"type":"integer","format":"int32"}},{"name":"OrganisationIds","in":"query","schema":{"type":"array","items":{"type":"integer","format":"int32"}}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentPublicDataDtoListPagedStudentFilterResponseDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /api/v1/Students

> Create a new student.

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentCreateRequestDto":{"required":["firstName","gender","grade","lastName"],"type":"object","properties":{"studentId":{"maxLength":50,"type":"string","nullable":true},"studentDisplayId":{"maxLength":200,"type":"string","nullable":true},"qrCode":{"maxLength":50,"type":"string","nullable":true},"lastName":{"maxLength":50,"minLength":1,"type":"string"},"firstName":{"maxLength":50,"minLength":1,"type":"string"},"middleName":{"maxLength":100,"type":"string","nullable":true},"gender":{"$ref":"#/components/schemas/GenderTypeEnum"},"otherName":{"maxLength":100,"type":"string","nullable":true},"email":{"maxLength":256,"type":"string","format":"email","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"maxLength":100,"type":"string","nullable":true},"grade":{"maxLength":100,"minLength":1,"type":"string"},"homeroomClass":{"maxLength":100,"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true}},"additionalProperties":false},"GenderTypeEnum":{"enum":["Female","Male","Unspecified"],"type":"string"},"StudentCoreDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","nullable":true},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"qrCode":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"isArchived":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"updatable":{"type":"boolean"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students":{"post":{"tags":["Students"],"summary":"Create a new student.","parameters":[{"name":"organisationId","in":"query","schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCreateRequestDto"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCoreDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## GET /api/v1/Students/{id}

> Get student by Id (full details).

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentCoreDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","nullable":true},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"qrCode":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"isArchived":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"updatable":{"type":"boolean"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}":{"get":{"tags":["Students"],"summary":"Get student by Id (full details).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCoreDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## PUT /api/v1/Students/{id}

> Update an existing student.

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentUpdateRequestDto":{"required":["firstName","gender","grade","lastName"],"type":"object","properties":{"studentId":{"maxLength":50,"type":"string","nullable":true},"studentDisplayId":{"maxLength":200,"type":"string","nullable":true},"qrCode":{"maxLength":50,"type":"string","nullable":true},"lastName":{"maxLength":50,"minLength":1,"type":"string"},"firstName":{"maxLength":50,"minLength":1,"type":"string"},"middleName":{"maxLength":100,"type":"string","nullable":true},"gender":{"$ref":"#/components/schemas/GenderTypeEnum"},"otherName":{"maxLength":100,"type":"string","nullable":true},"email":{"maxLength":256,"type":"string","format":"email","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"maxLength":100,"type":"string","nullable":true},"grade":{"maxLength":100,"minLength":1,"type":"string"},"homeroomClass":{"maxLength":100,"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"isArchived":{"type":"boolean"}},"additionalProperties":false},"GenderTypeEnum":{"enum":["Female","Male","Unspecified"],"type":"string"},"StudentCoreDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","nullable":true},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"qrCode":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"isArchived":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"updatable":{"type":"boolean"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}":{"put":{"tags":["Students"],"summary":"Update an existing student.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentUpdateRequestDto"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCoreDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"string"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /api/v1/Students/BulkArchive

> Bulk archive or unarchive students.

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentBulkArchiveRequestDto":{"required":["ids"],"type":"object","properties":{"archive":{"type":"boolean"},"ids":{"minItems":1,"type":"array","items":{"type":"integer","format":"int32"}}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/BulkArchive":{"post":{"tags":["Students"],"summary":"Bulk archive or unarchive students.","parameters":[{"name":"organisationId","in":"query","description":"","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"The bulk archive request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentBulkArchiveRequestDto"}}}},"responses":{"200":{"description":"Success"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## GET /api/v1/Students/{id}/health

> Gets student health information by student identifier

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentHealthResponseDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}/health":{"get":{"tags":["Students"],"summary":"Gets student health information by student identifier","parameters":[{"name":"id","in":"path","description":"The student identifier","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","description":"","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StudentHealthResponseDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## PATCH /api/v1/Students/{id}/health

> Updates student health information

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentHealthUpdateRequestDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"StudentHealthResponseDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}/health":{"patch":{"tags":["Students"],"summary":"Updates student health information","parameters":[{"name":"id","in":"path","description":"The person identifier","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","description":"","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"The health update request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StudentHealthUpdateRequestDto"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StudentHealthResponseDto"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /api/v1/Students/{id}/contacts

> Add contacts to a student.

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentCoreDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","nullable":true},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"qrCode":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"isArchived":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"updatable":{"type":"boolean"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}/contacts":{"post":{"tags":["Students"],"summary":"Add contacts to a student.","parameters":[{"name":"id","in":"path","description":"Student ID","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","description":"Organisation Id (optional query parameter)","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"List of contact IDs to add","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCoreDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## DELETE /api/v1/Students/{id}/contacts

> Remove contacts from a student.

```json
{"openapi":"3.0.1","info":{"title":"SchoolsBuddy Public API","version":"1.0"},"servers":[{"url":"https://publicapi-eu.schoolsbuddy.net","description":"EMEA Public Api server"},{"url":"https://publicapi-asia.schoolsbuddy.net","description":"Asia Public Api server"},{"url":"https://publicapi-us.schoolsbuddy.net","description":"US Public Api server"},{"url":"https://publicapi.schoolsbuddy.cn","description":"China Public Api server"},{"url":"https://identity-eu.schoolsbuddy.net","description":"EMEA Identity server"},{"url":"https://identity-asia.schoolsbuddy.net","description":"Asia Identity server"},{"url":"https://identity-us.schoolsbuddy.net","description":"US Identity server"},{"url":"https://accounts.schoolsbuddy.cn","description":"China Identity server"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Type \"Bearer\" followed by a space and a token.","name":"Authorization","in":"header"}},"schemas":{"StudentCoreDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32","nullable":true},"studentId":{"type":"string","nullable":true},"studentDisplayId":{"type":"string","nullable":true},"qrCode":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"middleName":{"type":"string","nullable":true},"otherName":{"type":"string","nullable":true},"gender":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"house":{"type":"string","nullable":true},"grade":{"type":"string","nullable":true},"homeroomClass":{"type":"string","nullable":true},"homeroomAdvisorId":{"type":"integer","format":"int32","nullable":true},"homeroomAdvisor":{"type":"string","nullable":true},"sen":{"type":"boolean","nullable":true},"relatedPeople":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"isArchived":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","nullable":true},"updatedAt":{"type":"string","format":"date-time","nullable":true},"updatable":{"type":"boolean"}},"additionalProperties":false},"ErrorResponse":{"type":"object","properties":{"code":{"type":"string","description":"Gets or sets the machine-readable error code (e.g.\r\n`VALIDATION_FAILED`, `RESOURCE_NOT_FOUND`,\r\n`INTERNAL_ERROR`) per cross-cutting-design.md §5.1.","nullable":true},"error":{"type":"string","description":"Gets or sets the human-readable error message.","nullable":true}},"additionalProperties":false,"description":"Structured body for 4xx / 5xx responses on the new Public API surface:\r\na machine-readable SchoolsBuddy.PublicAPI.Models.ErrorResponse.Code plus a human-readable\r\nSchoolsBuddy.PublicAPI.Models.ErrorResponse.Error. See cross-cutting-design.md §5.3. This is additive —\r\nexisting endpoints continue returning their legacy plain-string /\r\nModelState shapes until migrated by their per-controller ticket."}}},"paths":{"/api/v1/Students/{id}/contacts":{"delete":{"tags":["Students"],"summary":"Remove contacts from a student.","parameters":[{"name":"id","in":"path","description":"Student ID","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"organisationId","in":"query","description":"Organisation Id (optional query parameter)","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"List of contact IDs to remove","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentCoreDto"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"string"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
