openapi: 3.0.3 info: title: PowerSchool SIS REST Authentication Metadata API description: The PowerSchool SIS REST API provides programmatic access to student information system data including student demographics, enrollment records, grades, attendance, master scheduling, and district reporting. The API uses OAuth 2.0 client credentials for authentication and returns data in JSON format. Endpoints follow the /ws/v1/ path convention and support GET, POST, PUT, and DELETE HTTP methods for full CRUD operations on supported resources. Authentication tokens are obtained via /oauth/access_token/ using Basic auth with client credentials provisioned through the PowerSchool Plugin Management Dashboard. version: 1.0.0 contact: name: PowerSchool Developer Support url: https://help.powerschool.com/ termsOfService: https://www.powerschool.com/legal/ servers: - url: https://{district}.powerschool.com description: District PowerSchool instance variables: district: description: The subdomain of the school district's PowerSchool installation default: demo security: - BearerAuth: [] tags: - name: Metadata description: System metadata and configuration paths: /ws/v1/metadata: get: operationId: getMetadata summary: Get system metadata description: Returns system-level metadata including version information, page size limits, plugin ID, and server uptime details. tags: - Metadata responses: '200': description: System metadata content: application/json: schema: $ref: '#/components/schemas/Metadata' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Error: type: object description: API error response properties: message: type: string description: Human-readable error description error: type: string description: Error code or type status: type: integer description: HTTP status code Metadata: type: object description: System-level metadata and configuration limits properties: course_max_page_size: type: integer description: Maximum page size for course queries machine_uptime: type: string description: Server uptime duration mobile_api_version: type: string description: Mobile API version string plugin_id: type: integer description: Plugin identifier powerschool_uptime: type: string description: PowerSchool application uptime powerschool_version: type: string description: PowerSchool version string powerteacher_version: type: string description: PowerTeacher version string school_max_page_size: type: integer description: Maximum page size for school queries schema_table_query_max_page_size: type: integer description: Maximum page size for schema table queries section_max_page_size: type: integer description: Maximum page size for section queries section_enrollment_max_page_size: type: integer description: Maximum page size for section enrollment queries state_reporting_version: type: string description: State reporting module version staff_max_page_size: type: integer description: Maximum page size for staff queries state: type: string description: US state or province code for this installation student_max_page_size: type: integer description: Maximum page size for student queries term_max_page_size: type: integer description: Maximum page size for term queries securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer token obtained from /oauth/access_token/ using client credentials. Tokens expire and must be refreshed. BasicAuth: type: http scheme: basic description: Basic auth with Base64-encoded client_id:client_secret for the token endpoint only.