{"version":"2.003","mime_type":"application/opentag3d","core":{"address_range":{"start":"0x00","end":"0xDF"},"fields":[{"name":"Tag Version","id":"tag_version","required":true,"added":"1.000","unit":"version","type":"int","scaling":0.001,"start":"0x00","length":2,"usage":"operational","examples":[1234],"description":"RFID tag data format version, with 3 implied decimal points. Eg `1000` → version `1.000`."},{"name":"Base Material Name","id":"material","required":true,"added":"1.000","type":"utf8","start":"0x02","length":5,"usage":"display","examples":["PLA","PETG","PCTFE","TPU"],"description":"Material name in plain text, excluding any modifiers."},{"name":"Material Modifiers","id":"material_mod","required":false,"added":"1.000","type":"utf8","start":"0x07","length":5,"usage":"display","examples":["CF","HF","Pro","Silk","95A"],"description":"Material subcategory or modifier in plain text. Long modifiers may need to be abbreviated."},{"name":"Filament Manufacturer","id":"manufacturer","required":true,"added":"1.000","type":"utf8","start":"0x0C","length":16,"usage":"display","examples":["Example Brand","Polar Filament"],"description":"Name of filament manufacturer. Long names should be abbreviated or truncated."},{"name":"Color Name","id":"color_name","required":false,"added":"1.000","type":"utf8","start":"0x1C","length":32,"usage":"display","examples":["Orange","White","Blue","Electric Watermelon"],"description":"Color in plain text."},{"name":"Color 1 Hex","id":"color_1","required":true,"added":"1.000","unit":"RGBA","type":"rgba","start":"0x3C","length":4,"usage":"display","examples":[[255,166,77,255]],"description":"Primary filament color stored as 4 separate 1-byte integers for red, green, blue and alpha, in the sRGB color space."},{"name":"Color 2 Hex","id":"color_2","required":false,"added":"1.000","unit":"RGBA","type":"rgba","start":"0x40","length":4,"usage":"display","examples":[[0,0,0,0]],"description":"Second filament color, if the filament is multi-color. Set to transparent black if the filament is single color."},{"name":"Color 3 Hex","id":"color_3","required":false,"added":"1.000","unit":"RGBA","type":"rgba","start":"0x44","length":4,"usage":"display","examples":[[0,0,0,0]],"description":"Third filament color, if the filament is multi-color. Set to transparent black if the filament is dual color."},{"name":"Color 4 Hex","id":"color_4","required":false,"added":"1.000","unit":"RGBA","type":"rgba","start":"0x48","length":4,"usage":"display","examples":[[0,0,0,0]],"description":"Fourth filament color, if the filament is multi-color. Set to transparent black if the filament is tri color."},{"name":"Serial Number / Batch ID","id":"serial","required":false,"added":"1.000","type":"utf8","start":"0x4C","length":32,"usage":"inventory","examples":["1234-ABCD","2024-01-23-1234"],"description":"Manufacturer's identifier for a spool batch or serial number."},{"name":"SKU","id":"sku","required":false,"added":"2.000","type":"utf8","start":"0x6C","length":16,"usage":"inventory","examples":["G00-A01"],"description":"Product SKU for the material and color."},{"name":"Barcode","id":"barcode","required":false,"added":"2.000","type":"int","start":"0x7C","length":6,"usage":"inventory","examples":[12345543210],"description":"The barcode number for the spool. This can be UPC12, UPC13, GS1/GTIN. (Recommended: UPC13)"},{"name":"Manufacture Date","id":"mfg_date","required":false,"added":"1.000","unit":"YYYY,MM,DD","type":"date","start":"0x84","length":4,"usage":"inventory","examples":[[2024,1,23]],"description":"Stored as 2 bytes for year, then 1 byte for month and 1 byte for day."},{"name":"Manufacture Time","id":"mfg_time","required":false,"added":"1.000","unit":"UTC hh:mm:ss","type":"time","start":"0x88","length":3,"usage":"inventory","examples":[[10,30,45]],"description":"Stored as 1 byte each for hour, minute, and second in 24-hour UTC."},{"name":"Filament Diameter","id":"diameter","required":true,"added":"1.000","unit":"mm","type":"int","scaling":0.001,"start":"0x8C","length":2,"usage":"operational","examples":[1750,2850],"description":"Filament (target) diameter in µm (micrometers). Eg `1750` → `1.750mm`."},{"name":"Measured Tolerance","id":"tolerance","required":false,"added":"1.000","unit":"mm","type":"int","scaling":0.01,"start":"0x8E","length":1,"usage":"operational","examples":[2,10],"description":"Measured tolerance in millimeters with two implied decimal points. Eg `1` → `±0.01mm` tolerance"},{"name":"Minimum Nozzle Diameter","id":"nozzle_diameter","required":false,"added":"2.000","unit":"mm","type":"int","scaling":0.1,"start":"0x8F","length":1,"usage":"operational","examples":[2,4,6],"description":"Minimum nozzle diameter in mm (millimeters) with an implied decimal point. Eg `2` → `0.2mm`"},{"name":"Target Print Temperature","id":"print_temp","required":true,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x90","length":1,"usage":"operational","examples":[42],"description":"Recommended print temperature in degrees Celsius, divided by 5. For example, `42` = `210°C`."},{"name":"Minimum Print Temperature","id":"min_print_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x91","length":1,"usage":"operational","examples":[38],"description":"Minimum nozzle temperature, divided by 5. For example, `38` = `190ºC`."},{"name":"Maximum Print Temperature","id":"max_print_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x92","length":1,"usage":"operational","examples":[45],"description":"Maximum nozzle temperature, divided by 5."},{"name":"Target Chamber Temperature","id":"chamber_temp","required":true,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x93","length":1,"usage":"operational","examples":[0,12,16],"description":"Recommended chamber temperature in degrees Celsius, divided by 5. For example, `12` = `60°C`. If the chamber does not need to be heated, set it to `0`."},{"name":"Target Bed Temperature","id":"bed_temp","required":true,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x94","length":1,"usage":"operational","examples":[12,16],"description":"Recommended bed temperature in degrees Celsius, divided by 5. For example, `12` = `60°C`."},{"name":"Minimum Bed Temperature","id":"min_bed_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x95","length":1,"usage":"operational","examples":[8],"description":"Minimum bed temperature, divided by 5. For example, `8` = `40ºC`."},{"name":"Maximum Bed Temperature","id":"max_bed_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x96","length":1,"usage":"operational","examples":[12],"description":"Maximum bed temperature, divided by 5."},{"name":"Target Volumetric Speed","id":"target_vso","required":false,"added":"1.000","unit":"mm³/s","type":"int","start":"0x97","length":1,"usage":"operational","examples":[80],"description":"Default recommended speed."},{"name":"Minimum Volumetric Speed","id":"min_vso","required":false,"added":"1.000","unit":"mm³/s","type":"int","start":"0x98","length":1,"usage":"operational","examples":[20],"description":"Mininum speed recommendation."},{"name":"Maximum Volumetric Speed","id":"max_vso","required":false,"added":"1.000","unit":"mm³/s","type":"int","start":"0x99","length":1,"usage":"operational","examples":[120],"description":"Maximum safe speed."},{"name":"Maximum Dry Temperature","id":"max_dry_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0x9A","length":1,"usage":"operational","examples":[10,11],"description":"Maximum safe drying temperature, divided by 5."},{"name":"Dry Time","id":"dry_time","required":false,"added":"1.000","unit":"hr","type":"int","start":"0x9B","length":1,"usage":"operational","examples":[4,8,12],"description":"Recommended drying time."},{"name":"Density","id":"density","required":true,"added":"1.000","unit":"g/cm³","type":"int","scaling":0.001,"start":"0x9C","length":2,"usage":"operational","examples":[1240,3900],"description":"Filament density in µg (micrograms) per cubic centimeter. Eg `1240` → `1.240g/cm³`. (Recommendations: 1.24 for PLA, 1.07 for ABS, 1.27 for PETG)"},{"name":"Target Weight","id":"weight","required":true,"added":"1.000","unit":"g","type":"int","start":"0x9E","length":2,"usage":"operational","examples":[1000,5000,750],"description":"Filament weight in grams, excluding spool weight. This is the TARGET weight (e.g., 1kg). Actual measured weight is stored in a different field."},{"name":"Empty Spool Weight","id":"empty_spool_weight","required":false,"added":"1.000","unit":"g","type":"int","start":"0xA0","length":2,"usage":"operational","examples":[105],"description":"Weight of empty spool in grams."},{"name":"Measured Filament Length","id":"measured_length","required":false,"added":"1.000","unit":"m","type":"int","start":"0xA2","length":2,"usage":"operational","examples":[336],"description":"The measured length of the filament, in meters. This is the actual filament length measured during production of the filament (not a realtime value updated during printing)."},{"name":"Measured Filament Weight","id":"measured_weight","required":false,"added":"1.000","unit":"g","type":"int","start":"0xA4","length":2,"usage":"operational","examples":[1002],"description":"The measured weight of the entire roll of filament, in grams, including the filament and the spool. This is the actual measurement taken right after production of a spool is completed (not a realtime value updated during printing)."},{"name":"Spool Core Diameter","id":"spool_core_diameter","required":false,"added":"1.000","unit":"mm","type":"int","start":"0xA6","length":1,"usage":"operational","examples":[100,80],"description":"Core diameter in mm (millimeters)."},{"name":"Transmission Distance (TD)","id":"td","required":false,"added":"1.000","unit":"mm","type":"int","scaling":0.1,"start":"0xA7","length":1,"usage":"operational","examples":[118],"description":"Opaque thickness in tens of millimeters Eg. `118` → `11.8`."},{"name":"MFI Temp","id":"mfi_temp","required":false,"added":"1.000","unit":"ºC","type":"int","scaling":5,"start":"0xA8","length":1,"usage":"operational","examples":[42],"description":"MFI test temperature, divided by 5. For example, `42` = `210ºC`."},{"name":"MFI Load","id":"mfi_load","required":false,"added":"1.000","unit":"kg","type":"int","scaling":0.01,"start":"0xA9","length":1,"usage":"operational","examples":[216],"description":"MFI test load in tens of grams. For example, `216` = `2.16kg`."},{"name":"MFI Value","id":"mfi_value","required":false,"added":"1.000","unit":"g/min","type":"int","start":"0xAA","length":1,"usage":"operational","examples":[63],"description":"MFI value."},{"name":"Online Data URL","id":"data_url","required":false,"added":"1.000","type":"ascii","start":"0xB8","length":32,"usage":"operational","examples":["pfil.us?i=8078-RQSR"],"description":"URL to access online JSON additional parameters. Formatted without `https` to save space."}]},"web_api":{"fields":[{"name":"OpenTag Version","id":"opentag_version","required":true,"added":"1.000","type":"string","examples":["2.001"],"description":"Must be set as the current OpenTag3D version the API has been updated to support. This field is required."},{"name":"Has UI","id":"has_ui","required":false,"added":"1.001","type":"bool","examples":[true],"description":"A boolean field to indicate whether the API URL has a user-friendly UI available. This lets implementers know that they can see a friendly webpage if they access the API URL without using the `application/json` header."},{"name":"Tag Data","id":"tag_data","required":false,"added":"2.002","type":"object{string, any}","examples":[{"tag_version":"2.001","material":"PLA","manufacturer":"Example Brand","color_name":"Marionette Brown"}],"description":"A copy of the properties that populate the tag data. This can be used to write new tags or update existing tags as needed. **This property, along with any other web API properties, will NEVER be relied upon for printer functionality.**"},{"name":"Price","id":"price","required":false,"added":"1.000","type":"object","examples":[{"us":"$15.99","eu":"€14.99","uk":"£16.99","global":"$15.99"}],"description":"The current prices for the material and color, separated by country or region. Each country or region should be represented by its two-letter ISO 3166-1 code, including any exceptional reservations such as EU for European Union. A `global` area may be defined as well."},{"name":"Product URL","id":"product_url","required":false,"added":"1.000","type":"object{string, array[string]}","examples":[{"us":["https://www.amazon.com/dp/*","https://example.com/filament-manufacturer-website"],"eu":["https://example.com"]}],"description":"Links to product pages where the user can repurchase the filament, separated by country or region. The representations of countries/regions will be identical to that of the `price` field. For each country/region, a list of URLs may be specified in order to provide multiple places the user can buy new filament. The order of URLs may be specified however the filament maker desires. (Implementers should honor the filament maker's ordering.)"},{"name":"Product Photos","id":"product_photos","required":false,"added":"2.002","type":"array[string]","examples":[["https://example.com/my-example-image.png","https://example.com/product-demo.jpg"]],"description":"Links to images of the product."},{"name":"QA Status","id":"qa_status","required":false,"added":"2.003","type":"string","examples":["Pass","Fail"],"description":"Useful for experimental or B-stock spools. States whether the spool meets the quality assurance guidelines of production. Can be a simple Pass/Fail, a letter grade, or any other grading system the filament manufacturer uses."},{"name":"Notes","id":"notes","required":false,"added":"2.002","type":"string","examples":["Lorem ipsum color sit print-it"],"description":"Manufacturer notes, if any. This is helpful for adding notes to experimental, pre-production or other special spools."}]}}