All-New T3 Reports
Last year, I launched a simple tool, "T3 Spreadsheet Sync", as a simple way to get Metrc data into spreadsheets. These eventually grew into a family of T3 API endpoints known as T3 API Reports.
In the time since reports launched, traffic to report endpoints has exploded as T3+ subscribers find new ways to integrate them into their workflows. Last month, it grew to the point where the T3 API servers were struggling to keep up with demand. On top of this, I am constantly getting requests from users for new types of reports, new data in reports, and new report formats.
Clearly, T3 users want to use reports a lot.
In response to this, I've rewritten the reports backend, making it more stable and substantially more powerful. This announcement is a high-level tour of what changed. The reports wiki page covers all of it in detail, with worked examples, and every endpoint and parameter is in the API documentation.
The short version: there are now 58 report endpoints, 41 of them new. Reports can come back as Excel workbooks or Google Sheets, be emailed to you instead of returned, and carry related Metrc data like lab results alongside each record. This opens up new avenues of automation and scheduled report generation.
Reports are much more stable
Reports are no longer built while you wait on the other end of the connection. Generation now happens in the background, and the result is stored and handed back — so one subscriber pulling a huge report no longer slows things down for everyone else.
Two other things came out of that change. Identical requests now share a single generation instead of each one hitting Metrc separately, so several spreadsheets pulling the same Sync Link cost the same as one. And requests that were never going to succeed are now rejected immediately with a clear explanation, instead of grinding away for a minute and then failing.
The specific numbers — row caps, rate limits, how long results are cached — are all published on the wiki under Limits.
A lot more reports
There are now 58 report paths, and 41 of them are new:
- Plants — on hold and inactive, plus dedicated on hold and inactive reports for mother plants
- Plant batches — on hold and inactive
- Packages — on hold
- Harvests — on hold
- Sales — inactive
- Tags — used and voided
- Transfers — incoming active, incoming inactive, outgoing active, outgoing inactive, and rejected
The full endpoint table is on the wiki.
Super reports
A super report pulls in related Metrc data alongside each record — lab results for each package, packages for each harvest, history, source harvests, sales transactions. Previously you'd have to export one report, export another, and match them up in the spreadsheet yourself. Now it arrives in one file.
There are 25 of them, all new. Every super report path is its report path with /super inserted before /report:
/v2/packages/active/report → /v2/packages/active/super/report
Then say what you want attached with &include=labResults.
Plain reports are still the right choice when everything you need is on the record itself — they're faster and return far more rows. See Super Reports for when to reach for which, and worked examples of both.
Excel and Google Sheets
Reports are no longer CSV-only. Add &contentType=xlsx and you get a real Excel workbook — it opens by double-clicking, with no import step, no delimiter dialog, and no tag numbers mangled into scientific notation.
Add &contentType=googleSheets and T3 builds a Google Sheet and shares it with your Google account.
Details on both, and the JSON and CSV formats, are under Choosing a Response Format.
Have reports emailed to you
Add &delivery=email&email=you@example.com to any report and it gets sent to that address instead of returned. You get a confirmation back right away, and the report itself lands in your inbox when it's ready.
If you have a large license and reports have never worked for you, this is the fix. An ordinary request gives up after a minute, and retrying doesn't help. With email delivery nothing is waiting, so the report takes however long it takes. If something goes wrong along the way, that explanation gets emailed to you too.
More at Emailing a Report.
Row limits
Add &rowLimit=<int> to cap how many records come back. Leave it off to get everything, as before.
This is genuinely useful in two very different ways. It rescues reports that are otherwise too large to run — a license with 100,000 active packages will be rejected, but &rowLimit=500 works. And it makes building a report much less tedious: &rowLimit=10 comes back in a couple of seconds and shows you the exact columns and layout the full report will produce, so you can get your filters and columns right before committing to the real run.
More at Limiting the Number of Rows.
Coming soon
Three things I'm actively working on:
Notifications. Run a report on a schedule and only hear about it when something you care about actually happens — an inventory count crossing a threshold, a package changing state, a lab result coming back. Reports you don't have to read.
Scan sheet reports. Scan sheets are one of the most-used features in the T3 Chrome extension, and they're coming to the API as a report endpoint, in Excel and Google Sheets.
Scheduled delivery. Reports that show up daily or weekly on their own, rather than only when you ask.
Getting started
T3 API Reports are available to T3+ subscribers. If you're not one yet, you can start a 30 day free trial at dash.trackandtrace.tools.
- Reports and Spreadsheet Sync — the full guide, with examples for the most common reports
- Examples — harvest packages, transfer manifests, lab results, and more
- T3 API documentation — every endpoint, parameter and schema
- Supercollections — the paginated cousin of super reports
And as always: if there's a report you need that doesn't exist yet, or data you want in one that isn't there, tell me. Nearly everything in this announcement started as a user request.