Legal

Terms of Service

Last updated: 13 June 2026

Who these terms are between

These terms govern your use of RunPy at runpy.co.uk. By creating an account or using the service, you agree to them. If you don't agree, please don't use RunPy.

Questions? Email support@runpy.co.uk.

Who can use RunPy

RunPy is designed for UK secondary school classrooms. You must be 13 or older to create your own account, or have a teacher create an account for you under a school's supervision. Teachers must be adults authorised by their school to use the service.

Safeguarding lead accounts. A separate account type exists for a school's designated safeguarding lead (DSL). It is created at /safeguarding using a work email issued by the school (personal email providers are not accepted). A safeguarding lead account is for an adult authorised by the school to receive safeguarding records; it cannot be used to access teacher or pupil dashboards. One designated lead account is permitted per school.

Acceptable use

You agree to use RunPy for learning, teaching, and creating Python or HTML projects. You agree not to:

  • upload, store, or share material that is illegal, harmful, harassing, or infringes others' rights;
  • attempt to disrupt the service, probe it for vulnerabilities without permission, or bypass safety controls;
  • use the service to attack other systems or to mine cryptocurrency;
  • share your account credentials, or impersonate another user.

Teachers additionally agree to use the comments and direct-edit features on pupils' files only for teaching, feedback and safeguarding purposes, and to keep their conduct on those features consistent with their school's safeguarding and acceptable-use policies.

Safeguarding leads additionally agree to use the safeguarding dashboard only to discharge their school's safeguarding duties, not to share or extract the records for unrelated purposes, and not to use the records to monitor staff productivity or to enforce non-safeguarding workplace policies.

We may suspend or close accounts that breach these rules. For security research, see our security.txt.

Your content

You keep ownership of any code, files, or text you create on RunPy. You grant us a limited licence to host, store, and display your content to operate the service (for example, so a teacher can see a student's saved work in their class).

You are responsible for the content you create. Don't upload anything you don't have the right to share.

Teacher comments and direct edits. When a teacher leaves a comment on a pupil's file or edits a pupil's code directly, the comment text and the changes made are also content under these terms. If the teacher has joined a school's safeguarding programme, those comments and edits are recorded as set out in the next section.

Safeguarding dashboard for schools

RunPy offers an optional, free safeguarding dashboard to schools. It is enabled when a school's designated safeguarding lead creates an account at /safeguarding and teachers at the school join with the code that the lead provides.

What is recorded. While a teacher is a member of a school in the dashboard, RunPy records each comment that teacher creates, edits or deletes on a pupil's file (including the body before any edit or deletion) and each direct code edit they make to a pupil's file (the lines added, the lines removed, and one full pre-edit file snapshot per editing session). Nothing is recorded for teachers who are not in a school.

Controller and processor. The school is the data controller for those safeguarding records. RunPy acts as the school's data processor, processing the records on the school's instructions for the safeguarding purpose described. By creating a safeguarding account, the school instructs RunPy to operate the dashboard on its behalf on the terms set out here and in the Privacy Policy.

Lead's responsibilities. The safeguarding lead is responsible for: (a) ensuring the school has a lawful basis under UK GDPR to operate the dashboard (typically Article 6(1)(c) and 6(1)(e) together with the school's safeguarding policy); (b) telling pupils, parents and staff that the dashboard is in use, consistent with the school's privacy notice; (c) keeping access to the lead account secure; and (d) only joining teachers who have been informed that their activity will be recorded.

Transparency. RunPy itself shows a persistent notice on a teacher's account page from the moment they join a school, and a sign-in notice to pupils whose teachers are in a school. These notices do not replace the school's own duty to inform.

Retention. When a teacher leaves a school, or is removed by the lead, the membership is archived. The associated comment and edit records remain reviewable by the lead for 30 days, after which an automated job permanently deletes the membership and every associated record. If the safeguarding lead deletes their account, the school and every record belonging to it are also deleted.

No use for performance management. The dashboard exists for pupil safeguarding. It must not be used as a routine performance-management tool for teachers or to monitor staff productivity. RunPy may suspend a school's safeguarding account if there is clear evidence the dashboard is being used outside its safeguarding purpose.

Paid subscriptions

RunPy offers a paid teacher plan billed monthly (£9.99 per month) or yearly (£99.99 per year). All prices are in GBP and exclusive of VAT. The plan covers a single teacher account and unlocks higher classroom limits (15 classes, 35 students per class) plus marking and feedback features described on the pricing page.

Auto-renewal. Both billing periods renew automatically at the end of each term using the payment method on file, unless you cancel beforehand. The amount and renewal date are visible at all times in your account billing area.

Cancellation. You can cancel at any time from the "Manage subscription" page in your account. Cancellation takes effect at the end of the current billing period, you keep full paid access until that date, after which the account drops to the Free plan. We do not provide refunds for unused portions of a billing period.

Switching intervals. Upgrading from monthly to yearly takes effect immediately and your card is charged the prorated difference. Switching from yearly to monthly takes effect at the end of your current yearly period, no charge is taken at the time of the switch.

Failed payments. If a renewal payment fails, we'll retry it according to Stripe's standard retry schedule. If it ultimately fails the subscription will be cancelled and the account drops to the Free plan.

Price changes. We may change subscription prices in future. Existing subscribers will be notified by email at least 30 days before the change takes effect, and the new price will only apply at the next renewal, you can cancel before then if you don't want to continue.

Payment processing

All payments on RunPy are taken and processed by Stripe Payments Europe, Limited ("Stripe") on our behalf. Stripe is a regulated payment service provider authorised by the Central Bank of Ireland and the UK Financial Conduct Authority for the provision of payment services.

When you enter card details on RunPy, those details are collected and stored by Stripe, not by us. We never see or store your full card number, expiry, or CVC. Stripe is PCI DSS Level 1 compliant, the highest tier of card security certification. We only receive a token (the customer ID and subscription ID) that lets us look up your subscription status.

By subscribing you also agree to Stripe's Services Agreement and Privacy Policy.

Invoices and receipts are issued by Stripe and accessible at any time via the "Manage billing" portal in your account.

Service availability

We aim to keep RunPy available during UK school hours but don't guarantee uninterrupted service. We may occasionally need to take it offline for maintenance, security, or updates.

Disclaimers

RunPy is provided "as is". To the extent permitted by law, we make no warranties about uptime, suitability for a particular curriculum, or that the service will be error-free. Nothing in these terms limits our liability for fraud or death or personal injury caused by negligence.

Changes

We may update these terms when our practices change and will update the "Last updated" date above. For material changes, we'll let teacher account holders know by email.

Governing law

These terms are governed by the laws of England and Wales. Any disputes are subject to the exclusive jurisdiction of the English courts.