jointhestudentlife
Official Python SDK for The Student Life: student events, ticket prices, city guides and student deals in 85+ cities, for international and exchange students.
The API is open. No key, no signup, no payment. Standard library only, Python 3.9+.
pip install jointhestudentlife
from jointhestudentlife import TheStudentLife
tsl = TheStudentLife()
events = tsl.events(city="paris", type="halloween")["events"]
print(events[0]["tickets"]["options"]) # [{'name': 'Round 1', 'price': 9.5, 'currency': 'EUR'}, ...]
guide = tsl.city("lisbon")
for city in tsl.each_city():
print(city["name"])
# async report job: 202 Accepted, then poll until it succeeds
job = tsl.run_report("city_comparison", cities=["berlin", "lisbon"])
print(job["result"]["cities"][0]["monthly_costs"])
Methods: info, cities, city, events, event, partners, pricing, each_city, each_event, create_report, get_report, run_report, send_message. Lists are cursor paginated (next_cursor). Errors raise TheStudentLifeError with status and code (including timeout and network_error). Requests retry on 429 (honouring Retry-After); reads also retry on 5xx, while a message is only retried when it carries an idempotency key, so it is never sent twice by the SDK. Requests time out after 30 seconds (timeout).
send_message emails our team on someone's behalf. Only use it with that person's consent and their own name and email. Pass dry_run=True to validate without sending, and a fresh idempotency_key per message so a retry is recognised (best effort, see the developer docs). Messages are limited to a few per minute.
There is also an MCP server at https://jointhestudentlife.com/mcp, a JavaScript SDK and CLI on npm (jointhestudentlife), and the OpenAPI spec at https://jointhestudentlife.com/openapi.json. Full docs: https://jointhestudentlife.com/developers
Licence
The MIT licence covers the code of this package only. The data the API returns, the website content and The Student Life name and logo stay with Socials BV.
Metadata
Release files for jointhestudentlife 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jointhestudentlife-1.0.0.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jointhestudentlife-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / jointhestudentlife-1.0.0.tar.gz
| Download URL | jointhestudentlife-1.0.0.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
56e45ffdef26a59ec6b2e58ab5b28eff904baf2c10cd6ead6a23add6b20addd1
|
|
BLAKE2b-256 checksum How to use checksums |
3bef43f641b45b3fefb99c846e68f21169e9669553a453ecf2a7727eb55e5bda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / jointhestudentlife-1.0.0-py3-none-any.whl
| Download URL | jointhestudentlife-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4dd6660f9783530de70b5d69cab0a5929dcb7c7c9596d6134c83f1ae92388acb
|
|
BLAKE2b-256 checksum How to use checksums |
3f2647d8aecb0aa8d09f80c90eba94f619a8fc1612ab5ee7dc5ced04198a33b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log