Skip to content

T3 API Reports

A collection endpoint returns one page of records. A report endpoint returns the whole dataset in a single request (every active package, every harvest, every transfer manifest) already filtered, sorted, and formatted the way you asked for it.

T3+ required

Report endpoints are available to T3+ subscribers only. You can start a 30-day free trial at dash.trackandtrace.tools.

Your first report

Every report is one authenticated GET. Paste this into a browser and it downloads every active package on a license as a CSV:

https://api.trackandtrace.tools/v2/packages/active/report?secretKey=YOUR_SECRET_KEY&licenseNumber=EX-00001&contentType=csv&columns=label,item.name,quantity,unitOfMeasureAbbreviation,locationName&columnHeaderOverrides=Tag,Item,Quantity,Unit,Room&prependCsvMetadata=false

Read it one piece at a time:

Piece What it does
https://api.trackandtrace.tools The T3 API host.
/v2/packages/active/report The report endpoint. This one returns active packages; every other report is a different path, listed in Report Endpoints.
?secretKey=YOUR_SECRET_KEY Authentication. A URL carries the key as a parameter rather than a header because it is meant to be pasted somewhere: a browser, a spreadsheet formula, Power Query.
&licenseNumber=EX-00001 Which license to pull. Repeat the parameter to cover several at once, see Reporting Across Multiple Licenses.
&contentType=csv Return a CSV file. json, xlsx and googleSheets are the other choices, see Output and Delivery Format.
&columns=label,item.name,quantity,unitOfMeasureAbbreviation,locationName Which fields come back, in this order. Leave it off and you get the report's default columns.
&columnHeaderOverrides=Tag,Item,Quantity,Unit,Room The header names. Matched positionally against columns, so the first override names the first column. Without it the headers are title-cased from the field names, and unitOfMeasureAbbreviation arrives as Unit Of Measure Abbreviation.
&prependCsvMetadata=false Drop the eight-row preamble describing the request, so the headers land on row 1 and the first package on row 2.

The file that comes back:

Tag Item Quantity Unit Room
1A4400000000000000001234 Blue Dream 1250 g Bulk Storage
1A4400000000000000001235 Blue Dream Preroll 1g 480 ea Packaging Room
1A4400000000000000001236 GG4 Shake/Trim 3400 g Bulk Storage
1A4400000000000000001237 Sour Diesel Distillate 215.5 g Extraction Vault
1A4400000000000000001238 Wedding Cake Flower 3.5g 96 ea Retail Vault

One row per active package, all of them, in a single request. A license holding twelve thousand packages returns twelve thousand rows here.

Generate a secret key at the secret-key page. See Authentication for the alternatives, and Report Examples for the same requests written as Python scripts, where the key belongs in an X-T3-API-Key header instead.

Collection endpoint versus report endpoint

The same data is reachable both ways, and the difference is how much of it you get per request.

Returns Use it when
/v2/packages/active One page of active packages You are paging through records in an application
/v2/packages/active/report All active packages You want the dataset exported in one go

Because a report returns everything, the response can be very large, see Limits and Troubleshooting for the caps and how to stay under them.

You do not have to build these URLs by hand

T3 Reports in the Chrome Extension is a form over everything in this section. It assembles the URL, explains each parameter as you set it, previews the first few rows, and hands you the finished link, including the =IMPORTDATA() formula for Spreadsheet Sync. A URL it produces is an ordinary report URL, and a URL you write yourself can be pasted back into it.

Next Steps