How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

SJTU Open API

The university's own REST API platform (开放API), operated by the SJTU Network and Information Center at api.sjtu.edu.cn under OAuth 2.0 issued by its own jAccount authorization server. 59 documented operations across 13 families: Profile, Task, Enterprise, File, Notification, Mail, Finance, Education, Card, Unicode (思源码), Barcode, Calendar and Signature. Every response uses one envelope — errno, error, total, nextToken, entities[] — and field release is scope controlled, so the same Profile operation returns a different object shape to a `basic` token than to a `privacy` one. Verified live 2026-08-30: an unauthenticated GET of /v1/me/profile returns HTTP 403 with the documented {"errno":10002,"error":"Authentication Failed."}. SJTU publishes no OpenAPI; the specification here is DERIVED from the university's own HTML documentation and marked as such in info.x-provenance.

SJTU Open API is one of 5 APIs that Shanghai Jiao Tong University publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 JSON Schema definitions.

Tagged areas include Campus Life, Identity, Payments, Course Catalog, and Messaging. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, authentication docs, and 2 JSON Schemas.

This API exposes 62 operations across 49 paths, organized into 13 resource areas, and defines 3 schemas. It is described by OpenAPI 3.1.0, at version 1.0.0.

Requests are made against a single base URL, https://api.sjtu.edu.cn.

62 operations 49 paths 3 schemas 3 DELETE38 GET15 POST6 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.0.0
Base URL
https://api.sjtu.edu.cn
Authentication
OAuth 2.0
Terms of Service
Resource Areas
13

Authentication & Security 1

SJTU Open API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (jAccountOAuth2) using the authorizationCode, clientCredentials and password flows, exposing 39 scopes.

  • jAccountOAuth2 — OAuth 2.0 issued by SJTU's own jAccount authorization server. The issuer publishes OpenID Connect discovery at https://jaccount.sjtu.edu.cn/oauth2/.well-known/…

Paths & Operations 62

Across 49 paths, the API surfaces 62 operations — 3 DELETE, 38 GET, 15 POST, 6 PUT. They span 13 resource areas, including Profile, Task, Enterprise, File, Notification, Mail, Finance, Education, and 5 more. Each is listed below with its method, path, parameters, and response codes.

Profile 2

User profile — identity, name, default identity type and organizational unit, with field-level scope control.

GET
/v1/me/profile
Get my user profile
get_v1_me_profile → 200400403404405500503
GET
/v1/profile/{jaccount}
Get a specified user's profile
get_v1_profile_jaccount 1 param → 200400403404405500503
Task 1

InfoPlus task centre — push workflow task updates into the campus task centre.

POST
/v2/task/message
Send a task update message
post_v2_task_message → 200400403404405500503
Enterprise 7

Enterprise directory — posts, identities, rights, organizational units and the academic calendar.

GET
/v1/enterprise/user/positions
List a user's posts and identities
get_v1_enterprise_user_positions → 200400403404405500503
GET
/v1/enterprise/user/rights
Get a user's rights
get_v1_enterprise_user_rights 1 param → 200400403404405500503
GET
/v1/enterprise/position/dept:post:biz/users
List users holding a post
get_v1_enterprise_position_dept_post_biz_users → 200400403404405500503
PUT
/v1/enterprise/position/dept:post/users
Assign a post to a user
put_v1_enterprise_position_dept_post_users 1 param → 200400403404405500503
DELETE
/v1/enterprise/position/dept:post/users
Revoke a user's post assignment
delete_v1_enterprise_position_dept_post_users 1 param → 200400403404405500503
GET
/v1/enterprise/organizes
List organizational units
get_v1_enterprise_organizes → 200400403404405500503
GET
/v1/enterprise/calendar
Get the academic calendar
get_v1_enterprise_calendar 2 params → 200400403404405500503
File 8

Application file storage — upload, download, metadata, thumbnails and WPS preview/edit links.

PUT
/v1/file
Upload a file
put_v1_file → 200400403404405500503
GET
/v1/file/{id}
Download a file
get_v1_file_id 1 param → 200400403404405500503
POST
/v1/file/{id}
Replace a file
post_v1_file_id 1 param → 200400403404405500503
GET
/v1/file/{id}/meta
Get file metadata
get_v1_file_id_meta 1 param → 200400403404405500503
POST
/v1/file/{id}/meta
Update file metadata
post_v1_file_id_meta 1 param → 200400403404405500503
GET
/v1/file/{id}/thumb/{size}
Download a thumbnail
get_v1_file_id_thumb_size 2 params → 200400403404405500503
GET
/v1/file/preview
Get a WPS preview link
get_v1_file_preview → 200400403404405500503
GET
/v1/file/edit
Get a WPS edit link
get_v1_file_edit → 200400403404405500503
Notification 3

Campus notification delivery and read-state tracking, including Jiao-Wo-Ban (交我办) app pushes.

PUT
/v1/notification
Send a notification
put_v1_notification → 200400403404405500503
GET
/v1/notification/status
Get notification status
get_v1_notification_status 1 param → 200400403404405500503
POST
/v1/notification/status
Mark notification status
post_v1_notification_status → 200400403404405500503
Mail 4

Campus mail — read, send and mark messages on the user's behalf.

GET
/v1/mails
List mail
get_v1_mails → 200400403404405500503
GET
/v1/mails/{state}
List mail
get_v1_mails_state 1 param → 200400403404405500503
PUT
/v1/mail
Send mail
put_v1_mail → 200400403404405500503
POST
/v1/mail/{mailId}
Mark a mail's read state
post_v1_mail_mailId 1 param → 200400403404405500503
Finance 5

Finance appointment workflow — submit, cancel, complete and query financial business items.

GET
/v1/finance/appointments/{businessType}/{businessNo}
Get one finance appointment
get_v1_finance_appointments_businessType_businessNo 2 params → 200400403404405500503
PUT
/v1/finance/appointments/{businessType}/{businessNo}
Submit a new finance appointment
put_v1_finance_appointments_businessType_businessNo 2 params → 200400403404405500503
DELETE
/v1/finance/appointments/{businessType}/{businessNo}
Cancel a finance appointment
delete_v1_finance_appointments_businessType_businessNo 2 params → 200400403404405500503
POST
/v1/finance/appointments/{businessType}/{businessNo}
Mark a finance appointment complete
post_v1_finance_appointments_businessType_businessNo 2 params → 200400403404405500503
GET
/v1/finance/appointments/{businessType}
List completed, cancelled or returned finance appointments
get_v1_finance_appointments_businessType 1 param → 200400403404405500503
Education 6

Teaching records — lessons, student timetables, examinations and GPA.

GET
/v1/lesson/{code}
Get a teaching-class (lesson) record
get_v1_lesson_code 1 param → 200400403404405500503
GET
/v1/me/lessons
Get the signed-in student's timetable
get_v1_me_lessons → 200400403404405500503
GET
/v1/me/lessons/{term}
Get the signed-in student's timetable
get_v1_me_lessons_term 1 param → 200400403404405500503
GET
/v1/me/examinations
Get the signed-in student's examinations
get_v1_me_examinations → 200400403404405500503
GET
/v1/me/examinations/{term}
Get the signed-in student's examinations
get_v1_me_examinations_term 1 param → 200400403404405500503
GET
/v1/gpa
Get the signed-in student's GPA
get_v1_gpa → 200400403404405500503
Card 14

Campus card (一卡通) — account opening, balance, transactions, photo, top-up, freeze and transfer.

GET
/v1/me/card
Get my campus-card record
get_v1_me_card → 200400403404405500503
PUT
/v1/me/card
Open a campus-card account
put_v1_me_card → 200400403404405500503
POST
/v1/me/card
Set campus-card information and state
post_v1_me_card → 200400403404405500503
GET
/v1/me/card/user
Get campus-card identity information
get_v1_me_card_user → 200400403404405500503
GET
/v1/me/card/transactions
List campus-card transactions
get_v1_me_card_transactions → 200400403404405500503
GET
/v1/me/card/photo
Get the campus-card photo
get_v1_me_card_photo → 200400403404405500503
POST
/v1/me/card/photo
Update the campus-card photo
post_v1_me_card_photo → 200400403404405500503
GET
/v1/me/card/recharge/{id}
Get a top-up request
get_v1_me_card_recharge_id 1 param → 200400403404405500503
POST
/v1/me/card/recharge
Submit a top-up request
post_v1_me_card_recharge → 200400403404405500503
POST
/v1/card/foundLostCard
Report a found lost card
post_v1_card_foundLostCard → 200400403404405500503
GET
/v1/card
Look up a card by staff/student number or physical card number
get_v1_card → 200400403404405500503
POST
/v1/card
Freeze or unfreeze a campus card
post_v1_card → 200400403404405500503
GET
/v1/me/card/transfer
Get a card balance-transfer order
get_v1_me_card_transfer → 200400403404405500503
POST
/v1/me/card/transfer
Transfer a campus-card balance
post_v1_me_card_transfer → 200400403404405500503
Unicode 7

Siyuan code (思源码) — the campus identity and payment QR code, its activation, payment codes and transactions.

GET
/v1/unicode
Validate a Siyuan code
get_v1_unicode → 200400403404405500503
POST
/v1/unicode
Activate a Siyuan code
post_v1_unicode → 200400403404405500503
GET
/v1/unicode/identity
Get the identity code and Siyuan activation state
get_v1_unicode_identity → 200400403404405500503
GET
/v1/unicode/identity/advertising
Get promotional-slot content
get_v1_unicode_identity_advertising → 200400403404405500503
GET
/v1/unicode/pay
Get a payment code
get_v1_unicode_pay → 200400403404405500503
GET
/v1/unicode/parameters
Get payment-code integration parameters
get_v1_unicode_parameters → 200400403404405500503
GET
/v1/unicode/transactions
List Siyuan-code transactions
get_v1_unicode_transactions → 200400403404405500503
Barcode 2

Barcode and QR-code image rendering.

GET
/v1/barcode/qr/{fileName}.{imageType}
Render a QR code
get_v1_barcode_qr_fileName_imageType 2 params → 200400403404405500503
GET
/v1/barcode/{type}/{value}.{imageType}
Render a barcode
get_v1_barcode_type_value_imageType 3 params → 200400403404405500503
Calendar 2

Calendar event synchronisation into the campus calendar.

POST
/v1/calendar/event
Create a calendar event
post_v1_calendar_event → 200400403404405500503
DELETE
/v1/calendar/event/{id}
Delete a calendar event
delete_v1_calendar_event_id 1 param → 200400403404405500503
Signature 1

Digital document signing (e-signature).

POST
/v1/signature/{eSignCode}
Apply a digital signature to a document
post_v1_signature_eSignCode 1 param → 200400403404405500503

Schemas 3

The contract defines 3 schemas that model the data the API accepts and returns. The most detailed are Profile (11 properties), Envelope (5 properties), Error (3 properties). Each schema is shown below with its type and property counts.

Envelope
object
The common response envelope every SJTU open API returns.
5 properties 1 required
Error
object
Error payload. errno carries the SJTU API error code; see errors/shanghai-jiao-tong-university-errors.yml.
3 properties 1 required
Profile
object
jAccount user profile. Each field is released only to tokens holding one of the scopes named in its description — field-level scope control is enforced by the…
11 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

shanghai-jiao-tong-university-open-api-openapi.yml Raw ↑

Other APIs Shanghai Jiao Tong University publishes across the network.

SJTU Data Resources API
jAccount Authorization Server (OAuth 2.0 / OpenID Connect)
SJTU Identity Provider (Shibboleth / SAML 2.0)
Jiao Wo Ban (交我办) Process Platform
Where this information came from

This is an independent, third-party profile of SJTU Open API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.