Their spreadsheet. Your schema.
Typesheet is typed data intake for spreadsheets you didn’t create: the supplier price list, the stock count, the placement list that arrives again every month, reformatted every time. Define your fields once, send whoever keeps sending you files a link, and everything that arrives is matched to your schema and checked cell by cell before a single row is allowed to land.
Watch one customer’s file become rows you can use
The file arrives
Their column names, their formats, their shape.
Columns are mapped
Matched to your fields, whatever they called them.
Cells are checked
By code, against your types. Every failure named.
Clean rows export
Only rows that pass every rule can leave.
| E-mail Addr.Work emailemail | ClientCompanytext | # of seatsSeatsnumber | renewalRenewsdate |
|---|---|---|---|
| ada@northwind.co | Northwind Traders | 12 | 8/4/26 |
| omar@contoso.co | Contoso | 1,250 | Aug 11 2026 |
| priya@fabrikam | Fabrikam | 8 | 2026-08-18 |
| leo@litware.co | Litware | many | 2026-09-01 |
| mia@tailspin.co | – | 21 | 13/13/2026 |
Open the door without opening the sheet
The obvious alternative is to share the spreadsheet, and it fails at the first step: to let someone put data in, you have to let them in. An import link is an address rather than a seat. Whoever holds it can put rows into this sheet and can do nothing else, including read it.
Senders see only their own file
They drop their spreadsheet and fix what the types catch. Your rows are never on their screen, and they never make an account.
You approve the merge
Submissions queue as imports, counted as new, updated, or unchanged before you accept any of them.
One gate, whichever way in
A guest link, your own upload, and an agent over MCP all pass through the same validator. There is no looser second path.
It gets quieter every time you use it
Your fixes become rules
Change “Eng” to Engineering once. Every later file arrives with that correction already applied, named, and reversible.
Rows merge, they never pile up
Rows join on the fields you called unique, so a re-sent price list reads as two updates, not 150 duplicates.
Your assistant cannot fake a clean file
Connect over MCP and Claude imports against your schema rather than guessing at it, and the export refuses while any cell is still wrong. What that guarantees
A sheet other people can send data to.
Customers, vendors, and colleagues send spreadsheets to a link and get told what is wrong with them, without an account and without you in the middle. Try the whole thing, link included, for 14 days, no card.
14-day trial
then $29/mo
Pro, including the link, for two weeks.
- Import links: hand one to a supplier and watch their file arrive
- Unlimited sheets, up to 5,000 rows an import
- 100 imports and 50 document pages
- Columns matched to your fields, every cell typed and checked
- Clean CSV, JSON, and PDF exports, plus webhooks
- No card. 14 days from the first time you use it, not from signing up
- Afterwards your sheets, rows and exports stay; imports pause
Pro
Billed monthly
An address other people can send data to.
- Import links: anyone sends you data, no account needed
- Fixes remembered and replayed on every later file
- Unlimited sheets, 100,000 rows held
- 500 imports / month, up to 5,000 rows each
- 300 PDF and screenshot pages / month
Business
Billed monthly
When the link is how your data arrives, not an experiment.
- Everything in Pro
- 3,000 imports / month, up to 20,000 rows each
- 1,000,000 rows held
- 2,000 PDF and screenshot pages / month
- Priority support
Questions people ask first
Typesheet is typed data intake. You define a sheet, which is a schema for what one row must be: named fields with real types, plus required and unique rules. Messy spreadsheets sent to that sheet come back with their columns matched to your fields and every cell checked, and nothing exports until every cell passes.
A spreadsheet holds whatever you type into it. A sheet in Typesheet holds only values that match its schema, and it refuses the rest at the door. There are no formulas, no pivot tables, and no views: it is the gate in front of a spreadsheet, not a replacement for one.
Typesheet accepts CSV and Excel files, cells pasted straight from Google Sheets or Excel, PDFs such as price lists and invoices, screenshots and photos of tables, and links to web pages. A link to a page becomes one row; a link to a file brings in the whole file. Fields are typed as text, number, date, email, url, boolean, enum.
No. A sheet on a paid plan can hand out an import link, and anyone holding that link can send rows without signing up. They map and fix their own file against your schema, and it reaches you already clean. They never see what the sheet already holds.
The export refuses while any cell is still invalid, and the refusal is enforced on the server by the same deterministic validator the review grid runs. It does not consult a model, so an agent cannot assert that data is clean and get it out. The agent can fix cells and drop junk rows; it cannot lower the bar.
Yes. Typesheet runs a remote Model Context Protocol server, so any MCP client that accepts a server URL (Claude, ChatGPT, Cursor) can connect to it. There are no API keys: the first connection opens a browser to sign in once, and after that the tools create sheets, import rows, and fix cells as you.
Rows join on whichever fields you marked unique, so a re-sent price list reads as a handful of updates rather than a second copy of the file. Every import is counted as new, updated, or unchanged, and shown to you as a diff before you accept it.
Yes. When you fix a value a sheet rejected, that correction is kept as a named, reversible rule on the sheet. The next file carrying the same mistake arrives with the fix already applied, so a recurring sender’s habits stop costing you anything after the first time.
Typesheet is $29 a month for Pro: 500 imports a month of up to 5,000 rows each, 300 PDF and screenshot pages, 100,000 rows held, import links so other people can send data in, and branded PDF reports. Business is $199 a month for high volume. There is a 14-day free trial of the full Pro product, import links included, with no card required.
Typesheet has a free trial rather than a free plan. A new account gets the whole Pro product for 14 days, import links included, with no card required: 100 imports of up to 5,000 rows each, 50 document pages, unlimited sheets, exports and webhooks. The clock starts the first time you use it, not when you sign up. Afterwards your sheets, rows and exports stay readable and new imports need a subscription, at $29 a month.
An import link only ever writes. It accepts rows into the sheet and reports on the rows that were just sent, and it never reveals what the sheet already holds. The key in the URL is the credential, so treat it like a password, and rotate it from the sheet’s share menu whenever you want.
For one file, do that. It stops working for the fourth file from the same supplier, because a chat has no memory of the schema you agreed, no record of what you already fixed, and no way to refuse. Typesheet keeps the schema, replays your past corrections onto the new file, and enforces the export check on the server in a validator that never asks a model for an opinion. A chat can only ever tell you the data looks fine.
Every cell records who wrote it: you, an assistant working over MCP, the person who sent the file, or the sheet’s own memory of an earlier correction. The review grid shows that on the cell, tells you the value it replaced, and will put back every change made by any one of those sources in a single action. So an assistant fixing forty cells is forty cells you can inspect and undo as a group, not forty edits indistinguishable from your own.
Ready to define a sheet?
Name your fields, or let Typesheet read them off a file you already have.