Skip to main content

Smartschool Parser

PyPI version Python versions Tests codecov Quality Gate Status License: GPL v3

Unofficial Python library providing programmatic access to Smartschool's web platform. Access courses, documents, messages, results, agenda, and more through a clean, type-safe API.

Quick Start

Install from PyPI:

pip install smartschool

Create credentials.yml with your Smartschool credentials:

username: your_username
password: your_password
main_url: your_school.smartschool.be
mfa: your_birthday_or_2fa_secret  # YYYY-mm-dd or Google Authenticator secret
from smartschool import Smartschool, PathCredentials, Courses

session = Smartschool(PathCredentials())
for course in Courses(session):
    print(course.name)

Features

Category Classes Description
Courses TopNavCourses, Courses, CourseList Browse courses and download documents
Intradesk Intradesk Browse and download files from the intradesk
My Documents MyDocs Browse, download, upload and manage your personal documents
Results Results, Reports, Periods Grades, evaluations, report cards
Messages MessageHeaders, Message, Attachments, MessageComposerForm, RecipientType Inbox/outbox, compose, attachments, labels
Schedule SmartschoolLessons, SmartschoolHours Daily schedules, class periods
Planner PlannedElements, FutureTasks Assignments, deadlines, activities
Support StudentSupportLinks School support resources

Documentation

Detailed usage guides with examples:

Development

git clone https://github.com/svaningelgem/smartschool.git
cd smartschool
pip install poetry
poetry install

# Run tests
poetry run pytest

# Linting & formatting
poetry run ruff check .
poetry run ruff format .

Requirements

  • Python: 3.10+
  • Core Dependencies: requests, beautifulsoup4, pydantic, pyyaml, logprise
  • Optional: pip install smartschool[mfa] for Google Authenticator 2FA support

License

GNU General Public License v3.0

Contributing

Contributions welcome! See CONTRIBUTING.md for the full guide (local setup, conventions, project layout). In short, please ensure:

  • Tests pass: poetry run pytest
  • Code is formatted: poetry run ruff format .
  • Linting passes: poetry run ruff check .
  • Type stubs are updated: ./restub

Support

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smartschool-0.10.0.tar.gz (56.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smartschool-0.10.0-py3-none-any.whl (69.8 kB view details)

Uploaded Python 3

File details

Details for the file smartschool-0.10.0.tar.gz.

File metadata

  • Download URL: smartschool-0.10.0.tar.gz
  • Upload date:
  • Size: 56.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for smartschool-0.10.0.tar.gz
Algorithm Hash digest
SHA256 186da76c7021e01c1ef6fcf7adfb453cd0f515363d0b7947b3fcacb6d99f5df9
MD5 e969b8e0fbfd9706a0ecdd6dfbd94d25
BLAKE2b-256 10d85241bad9f09ed69a81ed17d09c6b51af57832afb8e3e0dc24f0fab03bbcf

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartschool-0.10.0.tar.gz:

Publisher: release.yml on svaningelgem/smartschool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smartschool-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: smartschool-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 69.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for smartschool-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7797d8dc3b415fc32bd99546951f3cf78878c881d0cb61eef0752f341df5737
MD5 46397a468010eb7bee32c1a95a59b057
BLAKE2b-256 080611685d7ae01cef671dddd8bf3623fab0d73309d591b57571cad51382992f

See more details on using hashes here.

Provenance

The following attestation bundles were made for smartschool-0.10.0-py3-none-any.whl:

Publisher: release.yml on svaningelgem/smartschool

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 files

0.9.1

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page