---
title: "Create a new School"
method: POST
path: "/school"
tags: ["School"]
---

# Create a new School

`POST /school`

Create a new School

## Request body

- object
  - `external` ExternalRequest — ExternalRequest is the External-object used on Update and Create operations, since it should only be allowed to set SourceID, the Source-field is not included.
    - `sourceID` string, required — The ID of the external source
  - `title` string, required — The title of the school
  - `unitID` string, uuid, nullable — The ID of the Unit the school belongs to. Null if the school is not assigned to a Unit.
  - `unitCode` string, nullable — The School Unit Code provided by SCB, is used in reports and printed on grade documents
  - `csnSchoolCode` string, nullable — The School Code provided by CSN, required for reports to CSN
  - `municipalityCode` string, nullable — Municipality code of the school, is used in reports and printed on grade documents
  - `schoolType` 'GR' | 'GY' | 'FS', required — The type of schooling provided at the school

## Response `201`

Response for School Create operation - returns the created School

- School — The `School` resource represents a school where daily operations occur. A school must exist before you can create StudentPlacements, EmployeePlacements, or Groups. This resource can be created, updated, listed, retrieved, and searched using the standard resource structure.
  - `id` string, uuid, required — Unique identifier for the School
  - `meta` Meta — Meta contains information about the creation and modification of a resource for auditing purposes
    - `createdAt` string, date-time, required — Timestamp when the resource was created
    - `createdBy` string, uuid, nullable — User who created the resource
    - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
    - `updatedBy` string, uuid, nullable — User who last updated the resource
  - `external` External — External is a reusable object that can be used to store external information from another system, used for third-party integration tracking.
    - `sourceID` string, nullable — The ID of the external source
    - `source` string, nullable — The source of the external information
  - `title` string, required — The title of the school
  - `unitID` string, uuid, nullable — The ID of the Unit the school belongs to. Null if the school is not assigned to a Unit.
  - `unitCode` string, nullable — The School Unit Code provided by SCB, is used in reports and printed on grade documents
  - `csnSchoolCode` string, nullable — The School Code provided by CSN, required for reports to CSN
  - `municipalityCode` string, nullable — Municipality code of the school, is used in reports and printed on grade documents
  - `schoolType` 'GR' | 'GY' | 'FS', required — The type of schooling provided at the school

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid parameters
- `401` — Unauthorized - The request is missing valid authentication credentials
- `403` — Forbidden - Request is authenticated, but the user is not allowed to perform the operation
- `404` — Not Found - The requested resource does not exist
- `409` — Conflict - The request could not be completed due to a conflict
- `422` — Validation error for School Create operation - request data failed validation
- `429` — Too Many Requests - When the rate limit has been exceeded
- `500` — Internal Server Error - An unexpected server error occurred

---

[API](https://skmtc.net/meitner/apis/directory-api.md) · [All operations](https://skmtc.net/meitner/apis/directory-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/meitner/directory-api/revisions/014348a7bc35/schema)
