免费

Timora 开放 API

把高校课表接入你的机器人、网站或应用。学生的个人数据——资料、成绩、截止日期和证明——只有经本人同意,通过“使用 Timora 登录”获取。只读访问。

网站上不发放令牌。API 访问权限由 Timora 团队亲自发放——请在 Telegram 上联系 @timora_support:说明你是谁、项目是什么、需要哪些数据以及代码放在哪里。

可以获取什么

API 提供的数据

公开数据

有项目令牌即可。与网站上无需登录即可看到的数据相同。

  • institutions高校和学院:名称、城市、可用功能
  • groups高校的班级
  • schedule班级每天的课程——每次请求最多 31 天
  • teachers教师(SibSUTIS)
  • exams考试、考查和答疑

经学生同意

学生自己决定开放哪些板块的访问权限,并可随时撤销。

  • profile姓名、班级和学校
  • schedule学生所在班级的课表
  • gradesEIOS 成绩
  • deadlinesEIOS 课程中未提交的作业和测验
  • certificates证明申请及其状态

如何获取访问权限

四步完成第一次请求

1
联系 @timora_support

介绍你的项目:做什么、需要哪些数据、代码放在哪里。如果在 GitHub 上——请发送链接。

2
接受规则

注明 Timora、GitHub 协作者、安全要求——见本页下方。

3
获取项目令牌

tmr_… 令牌单独发放且只显示一次。Timora 只保存它的指纹——丢失了会发新的。

4
从你的服务器发起请求

API 地址 — https://mytimora.ru/api/v1,请求头 Authorization: Bearer tmr_…。

使用 Timora 登录

个人数据——仅经同意

学生在已登录 Timora 的任意地方确认登录:iOS 和 Android 应用、Telegram 机器人或 Telegram 和 VK 小程序。你的项目看不到密码和登录数据。

规则

项目要求

获取令牌即表示你接受这些条款。如有违反,令牌将被直接撤销——所有学生对你项目的授权也会一并失效。

注明 Timora

  • 在项目界面中注明“由 Timora 提供支持”并链接到 mytimora.ru:放在“关于”页面、网站页脚或机器人简介中。
  • 在 README 和简介中说明项目使用了 Timora 开放 API。
  • 不得把 Timora 的名称、标志和设计据为己有。项目不得看起来像 Timora 的官方客户端。

GitHub

  • 如果项目代码在 GitHub 上(公开或私有仓库)——请把 @y0rence 添加为协作者:Settings → Collaborators → Add people。
  • 在 README 的贡献者(Contributors)部分注明 @y0rence。

令牌安全

  • 项目令牌是机密。它只存放在你的服务器上:环境变量或密钥存储中。
  • 不要放在代码里、git 里、移动应用里,也不要放在浏览器或小程序的 JavaScript 中。
  • 只使用校验证书的 HTTPS。令牌泄露时请立即联系 @timora_support:我们会撤销旧令牌并发放新令牌。

学生数据

  • 不要向学生索要 EIOS 密码和 Timora 登录代码——只使用“使用 Timora 登录”。
  • 只申请需要的板块:学生会在同意页面看到它们。
  • 学生令牌要加密保存。学生退出时——调用 POST /me/disconnect 并删除令牌。
  • 数据只能用于获得授权的功能。不得转让或出售,不得用于广告和模型训练,学生要求时须删除。遵守俄罗斯联邦第 152-FZ 号法律。
  • 向学生显示他是通过 Timora 登录的,并提供退出按钮。

限制与缓存

  • 缓存公开数据:班级课表——每 10–15 分钟最多请求一次。
  • 收到 429 响应时——等待 Retry-After 请求头中指定的秒数。

禁止事项

  • 绕过限制:使用多个令牌、更换地址。
  • 批量抓取数据。
  • 转售 API 访问权限。

参考文档

已有令牌的用户

地址 — https://mytimora.ru/api/v1。响应为 JSON,响应中的日期格式为 dd.mm.yyyy,参数中为 yyyy-mm-dd 或 dd.mm.yyyy。错误 — {"detail": "text"}。

请求头
请求头何时
Authorization: Bearer tmr_…始终——项目令牌
X-Timora-User: tmu_…用于 /me/…——通过“使用 Timora 登录”获得的学生令牌
公开数据
方法返回内容
GET /institutions高校:id、name、short、city、features
GET /groups?institution=nstu高校的班级
GET /schedule?institution=nstu&group=ПМИ-31&from=2026-10-05&to=2026-10-11每天的课程,每次请求最多 31 天
GET /teachers?institution=sibsutis教师(SibSUTIS)
GET /exams?institution=sibsutis&group=ИП-514考试、考查、答疑
“使用 Timora 登录”

POST /connect/start,请求体 {"scopes": ["profile", "schedule", "grades"]} → deviceCode、userCode(形如 ABCD-EFGH)、expiresIn(600 秒)、interval(3 秒)和 links:telegram、vk、app——学生用来确认登录的链接。

向学生显示代码以及“在 Telegram 中确认”“在 Timora 应用中确认”按钮。每隔 interval 秒用 {"deviceCode": "tmc_…"} 调用 POST /connect/poll:响应为 pending、slow_down、denied、expired,或带有只发放一次的 userToken(tmu_…)的 approved。

不指定 scopes 时,请求 profile 和 schedule。

学生数据

两个请求头都必须提供。只能访问学生允许的板块,否则返回 403。

方法板块返回内容
GET /meprofileid(每个项目各不相同)、名字、姓氏、班级、学校、登录方式
GET /me/schedule?from=…&to=…schedule学生所在班级的课表
GET /me/gradesgrades成绩(SibSUTIS,前提是学生在 Timora 中保存了 EIOS 密码)
GET /me/deadlinesdeadlinesEIOS 课程中未提交的作业和测验
GET /me/certificatescertificates证明申请及其状态
POST /me/disconnect—退出:项目对学生账号的访问终止

/me/… 返回 401——学生撤销了访问权限(在 Timora 个人资料中或在机器人中使用 /apps 命令),或项目令牌已被撤销。409——学生缺少所需数据:未选择班级或未连接 EIOS。

限制
  • 公开数据每个令牌每分钟 300 次请求,每个学生单独计算;
  • 成绩 30 次、截止日期 40 次、证明 20 次,均为每个学生每小时:这些是对学校网站的请求;
  • connect/start——每个项目每小时 600 次。
请求示例
curl -s https://mytimora.ru/api/v1/schedule \ -H "Authorization: Bearer $TIMORA_TOKEN" \ --get --data-urlencode "institution=nstu" --data-urlencode "group=ПМИ-31" \ --data-urlencode "from=2026-10-05" --data-urlencode "to=2026-10-11"

选择网站可以在你的浏览器中保存哪些内容。你可以随时更改——每个页面底部都有“Cookie 设置”链接。

必要记住你在此窗口中的选择。没有它们网站会再次询问,因此无法关闭。