Morning Bell
Be prepared for Fall 2026 Get your first brief
THE FINE PRINT, UNBURIED

Privacy & data practices

Effective date: July 16, 2026. Operated by Andersen Labs LLC. Written to be read, not skimmed past — if anything here is unclear, email hello@trymorningbell.com and a human (Luke) answers.

The short version

Morning Bell reads your school's LMS with the access token you give us, builds one email every morning, and keeps almost nothing. Your token is encrypted the moment it arrives. We are read-only — provably, not just as a promise. You can cut off our access yourself, instantly, and one short email deletes everything we hold. Your data is never sold or shared. Period.

What we access

With your access token we read, and only read: your active courses and official course grades, assignments and due dates, your own submission records (so we never call something overdue without checking), and professor announcements from the last 24 hours. The complete list of API calls we make is published below in the API calls section and generated from our actual code. The token you create cannot submit, post, message, or change anything on your behalf through our code: we make zero write calls.

What we store

The minimum that a "what changed since yesterday" email requires:

What we never store

Announcement bodies (we read them, and pass the text once to Anthropic for the summary — see "Who processes what" below — but never keep them). Submission content. Files. Discussion posts. Messages. Classmates' anything. Your LMS password (we never see it — a token is not a password and cannot log in as you).

What sticks around, and for how long

A few operational scraps outlive the moment, and you should know about them. If you unsubscribe, we keep your email address and the reason — that's how we make sure we never email you again. If you joined the early waitlist, that email sits in its own table until you ask us to remove it. A signup you start but never finish (your email and your school's Canvas address) expires after 24 hours and is physically deleted within the following week. Briefs we've already sent persist for a time in our email provider's (Resend's) delivery logs, under their own retention policy — email, once sent, is like that. And our database keeps no automated backups today, so a deleted row is simply gone; if we ever add backups, they'll rotate out within days, and this page will say so before it happens.

Deletion — real, and yours to trigger

Two independent levers, spelled out step by step on the delete your account page. First: you can revoke the access token in your school's Canvas settings at any time, all by yourself, and Morning Bell is locked out on the spot — no waiting on us. Second: one short, pre-filled email to us and we hard-delete your encrypted token from the vault, every row of your data, and the account itself — no soft delete, no "processing period," no backup ghost copies (see above). We do it within 7 days of your email, usually the same day.

Every brief also carries a one-tap unsubscribe that stops all sending instantly (your account pauses; deletion is the bigger hammer).

Selling, sharing, advertising

Your data will never be sold, shared, rented, or used for advertising. There are no third-party analytics on your LMS data. If Morning Bell ever costs money, it will be a price you see and choose — never your data behind your back.

Who processes what

That's the whole list as of the effective date above — and if it ever grows, this page changes first and you get an email before it does (see Changes below). No data brokers, no ad networks, no analytics companies with access to academic data.

Security honesty

Tokens encrypted at rest with managed keys separate from the database; read-only API usage; deny-by-default access rules on every table; secrets never in code or logs. If we ever have a breach affecting your data, we will tell you directly and promptly — not in a footnote.

Email practices

Every brief includes a working one-tap unsubscribe and our physical mailing address (CAN-SPAM). Subject lines say what the email is. We monitor complaint rates and stop sending to anyone who marks us as spam.

Changes

If these practices ever change materially, you get an email before the change takes effect, written in the same plain English.

Every API call Morning Bell makes — the complete list

This list is published here ("Read-only, provably"). It is generated from the actual client code (supabase/functions/_shared/lms/client.ts); any code change that adds an endpoint must update this list in the same commit, and vice versa. All calls are HTTP GET — the token we ask for is used exclusively to read. Morning Bell makes zero write calls of any kind.

# Endpoint Why we call it
1 GET /api/v1/users/self Validating that your token works — when you first connect, when you reconnect, and a daily infrastructure health check
2 GET /api/v1/courses?enrollment_state=active&include[]=total_scores Your active courses and each course's official current grade
3 GET /api/v1/courses/:id/assignments?include[]=submission Assignments and due dates for each course, with your submission status
4 GET /api/v1/courses/:id/assignments/:id/submissions/self Verifying YOUR submission record for a specific assignment before we ever use the word "overdue"
5 GET /api/v1/announcements?context_codes[]=... Professor announcements from the last 24 hours

What these calls can never do: submit an assignment, post or reply to a discussion, message anyone, change a setting, delete anything, or see other students' work. Those operations require write scopes and different endpoints that Morning Bell does not call and has no code for.

One more call, made without your token: while you pick your school at signup, the name you type is sent to Instructure's public school directory (GET canvas.instructure.com/api/v1/accounts/search) to find your school's Canvas web address — the same lookup the official Canvas app uses. It carries no token and no account data, just the school name you're typing.