Shanghai Jiao Tong University Undergraduate Teaching API

本科教学类 — undergraduate teaching records: student profile, course catalog, scheduling, and course selection.

Operations 4

GET /v1/stu/profile Student basic information #
GET /v1/course/info Course information #
GET /v1/course/plan Course scheduling information #
GET /v1/course/selection Course-selection (enrolment) information #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/shanghai-jiao-tong-university-undergraduate-teaching-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

shanghai-jiao-tong-university-undergraduate-teaching-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Shanghai Jiao Tong University Data Resources Undergraduate…
  version: 1.0.0
  summary: SJTU's institution-operated institutional-data exchange API — accounts, faculty, undergraduate teaching, papers and assets.
  description: 数据资源 (Data Resources) is Shanghai Jiao Tong University's own institutional data-exchange API, operated by the SJTU Network and Information Center and documented at https://developer.sjtu.edu.cn/graphql/overview.html.
  termsOfService: https://developer.sjtu.edu.cn/graphql/overview.html
  contact:
    name: Shanghai Jiao Tong University Network and Information Center
    url: https://developer.sjtu.edu.cn/
  x-operator: institution
  x-provenance:
    method: derived
    source: https://developer.sjtu.edu.cn/graphql/overview.html
    generated: '2026-08-30'
    note: 'Paths, query parameters, scope and paging semantics read from the operation blocks and parameter tables the SJTU developer portal renders on developer.sjtu.edu.cn/graphql/{overview,account,faculty,student,paper,asset}.html. Liveness probed 2026-08-30: https://graphql.sjtu.edu.cn/v1/account/info returned 302 to https://restrict.sjtu.edu.cn/ (campus-network restriction), not a 404 — the host is live and gated, not dead.'
servers:
- url: https://graphql.sjtu.edu.cn
  description: SJTU Data Resources host. Restricted to the campus network; off-campus callers are redirected to restrict.sjtu.edu.cn and must use the SJTU VPN.
tags:
- name: Undergraduate Teaching
  description: '本科教学类 — undergraduate teaching records: student profile, course catalog, scheduling, and course selection.'
paths:
  /v1/stu/profile:
    get:
      summary: Student basic information
      description: Student basic information. Documented as “学生基本信息” on the SJTU developer platform Data Resources section. Requires an approved data-resource application; the token is obtained with the OAuth 2.0 client-credentials grant and the exchange_data scope. Field-level access control applies — fields the application was not granted are returned empty.
      operationId: get_v1_stu_profile
      tags:
      - Undergraduate Teaching
      parameters:
      - name: accountNo
        in: query
        required: false
        description: jAccount账号
        schema:
          type: string
      - name: xh
        in: query
        required: false
        description: 学号
        schema:
          type: string
      - name: glyx
        in: query
        required: false
        description: 管理院系代码
        schema:
          type: string
      - name: lxbj
        in: query
        required: false
        description: 离校标记(N:未离校 Y:离校)
        schema:
          type: string
      - name: timestamp
        in: query
        required: false
        description: 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据
        schema:
          type: string
      - name: first
        in: query
        required: false
        description: 分页起始位置 分页参数说明
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: 分页偏移量
        schema:
          type: integer
      security:
      - jAccountOAuth2:
        - exchange_data
      responses:
        '200':
          description: Success. errno is 0 and the records are carried in entities[].
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '400':
          description: Bad Request — usually a parameter error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — authentication or scope check failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found — the resource path is wrong.
        '405':
          description: Method Not Allowed.
        '503':
          description: Service Unavailable — the API server is restarting or down for maintenance.
  /v1/course/info:
    get:
      summary: Course information
      description: Course information. Documented as “课程信息” on the SJTU developer platform Data Resources section. Requires an approved data-resource application; the token is obtained with the OAuth 2.0 client-credentials grant and the exchange_data scope. Field-level access control applies — fields the application was not granted are returned empty.
      operationId: get_v1_course_info
      tags:
      - Undergraduate Teaching
      parameters:
      - name: rscGh
        in: query
        required: false
        description: 任课老师工号
        schema:
          type: string
      - name: orgId
        in: query
        required: false
        description: 开课学院代码
        schema:
          type: string
      - name: courseKcdm
        in: query
        required: false
        description: 课程代码
        schema:
          type: string
      - name: courseSchoolyear
        in: query
        required: false
        description: 学年 (例:2022-2023)
        schema:
          type: string
      - name: courseTerm
        in: query
        required: false
        description: 学期
        schema:
          type: string
      - name: instructionalClassId
        in: query
        required: false
        description: 课程号
        schema:
          type: string
      - name: timestamp
        in: query
        required: false
        description: 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据
        schema:
          type: string
      - name: first
        in: query
        required: false
        description: 分页起始位置
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: 分页偏移量
        schema:
          type: string
      security:
      - jAccountOAuth2:
        - exchange_data
      responses:
        '200':
          description: Success. errno is 0 and the records are carried in entities[].
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '400':
          description: Bad Request — usually a parameter error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — authentication or scope check failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found — the resource path is wrong.
        '405':
          description: Method Not Allowed.
        '503':
          description: Service Unavailable — the API server is restarting or down for maintenance.
  /v1/course/plan:
    get:
      summary: Course scheduling information
      description: Course scheduling information. Documented as “排课信息” on the SJTU developer platform Data Resources section. Requires an approved data-resource application; the token is obtained with the OAuth 2.0 client-credentials grant and the exchange_data scope. Field-level access control applies — fields the application was not granted are returned empty.
      operationId: get_v1_course_plan
      tags:
      - Undergraduate Teaching
      parameters:
      - name: rscGh
        in: query
        required: false
        description: 任课老师工号
        schema:
          type: string
      - name: courseSchoolyear
        in: query
        required: false
        description: 学年 (例:2022-2023)
        schema:
          type: string
      - name: courseTerm
        in: query
        required: false
        description: 学期
        schema:
          type: string
      - name: instructionalClassId
        in: query
        required: false
        description: 课程号
        schema:
          type: string
      - name: timestamp
        in: query
        required: false
        description: 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据
        schema:
          type: string
      - name: first
        in: query
        required: false
        description: 分页起始位置
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: 分页偏移量
        schema:
          type: string
      security:
      - jAccountOAuth2:
        - exchange_data
      responses:
        '200':
          description: Success. errno is 0 and the records are carried in entities[].
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '400':
          description: Bad Request — usually a parameter error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — authentication or scope check failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found — the resource path is wrong.
        '405':
          description: Method Not Allowed.
        '503':
          description: Service Unavailable — the API server is restarting or down for maintenance.
  /v1/course/selection:
    get:
      summary: Course-selection (enrolment) information
      description: Course-selection (enrolment) information. Documented as “选课信息” on the SJTU developer platform Data Resources section. Requires an approved data-resource application; the token is obtained with the OAuth 2.0 client-credentials grant and the exchange_data scope. Field-level access control applies — fields the application was not granted are returned empty.
      operationId: get_v1_course_selection
      tags:
      - Undergraduate Teaching
      parameters:
      - name: xh
        in: query
        required: false
        description: 学号
        schema:
          type: string
      - name: courseId
        in: query
        required: false
        description: 课程ID
        schema:
          type: string
      - name: courseSchoolyear
        in: query
        required: false
        description: 学年 (例:2022-2023)
        schema:
          type: string
      - name: courseTerm
        in: query
        required: false
        description: 学期
        schema:
          type: string
      - name: timestamp
        in: query
        required: false
        description: 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据
        schema:
          type: string
      - name: first
        in: query
        required: false
        description: 分页起始位置
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: 分页偏移量
        schema:
          type: string
      security:
      - jAccountOAuth2:
        - exchange_data
      responses:
        '200':
          description: Success. errno is 0 and the records are carried in entities[].
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '400':
          description: Bad Request — usually a parameter error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden — authentication or scope check failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found — the resource path is wrong.
        '405':
          description: Method Not Allowed.
        '503':
          description: Service Unavailable — the API server is restarting or down for maintenance.
components:
  schemas:
    Envelope:
      type: object
      description: The common response envelope every Data Resources API returns.
      properties:
        errno:
          type: integer
          description: Error code. 0 means the call succeeded.
          example: 0
        error:
          type: string
          nullable: true
          description: Optional error message.
        total:
          type: integer
          description: Number of records returned by this call. Use it when paging to decide whether to keep querying.
        entities:
          type: array
          description: Returned records.
          items:
            type: object
      required:
      - errno
    Error:
      type: object
      properties:
        errno:
          type: integer
        error:
          type: string
        total:
          type: integer
      required:
      - errno
  securitySchemes:
    jAccountOAuth2:
      type: oauth2
      description: OAuth 2.0 client-credentials grant issued by SJTU's own jAccount authorization server. The exchange_data scope must be approved through the data-resource application workflow.
      flows:
        clientCredentials:
          tokenUrl: https://jaccount.sjtu.edu.cn/oauth2/token
          scopes:
            exchange_data: Data exchange — required by every Data Resources operation.
externalDocs:
  description: SJTU Developer Platform — Data Resources documentation
  url: https://developer.sjtu.edu.cn/graphql/overview.html