[{"data":1,"prerenderedAt":209},["ShallowReactive",2],{"changelog:off-route":3,"\u002Fversioning":4,"docs-nav":171},null,{"id":5,"title":6,"body":7,"cards":3,"description":159,"extension":160,"group":161,"hero":3,"icon":162,"meta":163,"navTitle":3,"navigation":164,"order":165,"path":166,"seo":167,"sitemap":168,"stem":13,"__hash__":170},"docs\u002Fversioning.md","Versioning",{"type":8,"value":9,"toc":150},"minimark",[10,14,19,28,32,35,61,65,76,92,96,103,106,109,113,143],[11,12,6],"h1",{"id":13},"versioning",[15,16,18],"h2",{"id":17},"the-version-is-in-the-path","The version is in the path",[20,21,22,23,27],"p",{},"Every endpoint lives under ",[24,25,26],"code",{},"\u002Fv1",". While it stays there, we will not make a change\nthat breaks a client written against it.",[15,29,31],{"id":30},"what-may-change-without-warning","What may change without warning",[20,33,34],{},"Additive things, which a correctly written client ignores:",[36,37,38,46,51],"ul",{},[39,40,41,45],"li",{},[42,43,44],"strong",{},"New fields on existing responses."," Do not use a parser that rejects unknown\nfields — treat anything you do not recognise as ignorable.",[39,47,48],{},[42,49,50],{},"New endpoints, new query parameters, new optional filters.",[39,52,53,56,57,60],{},[42,54,55],{},"New enum values."," This is the one that catches people: a ",[24,58,59],{},"status"," you have\nnever seen can appear because we added a state. Handle an unrecognised enum as\n\"something else\" rather than crashing or, worse, silently mapping it to a state\nit is not.",[15,62,64],{"id":63},"what-will-not-change-under-you","What will not change under you",[36,66,67,70,73],{},[39,68,69],{},"An existing field will not be removed, renamed, or change type.",[39,71,72],{},"An endpoint will not disappear or change what it accepts.",[39,74,75],{},"An enum value we have shipped will not change meaning.",[20,77,78,79,82,83,85,86,91],{},"If we ever need to break one of these, it goes in a ",[24,80,81],{},"\u002Fv2"," and ",[24,84,26],{}," keeps working\nwhile we tell you how long for. We do not have a deprecation policy to point at\nyet — when there is something to deprecate, it will be announced in the\n",[87,88,90],"a",{"href":89},"\u002Fchangelog","changelog"," before it happens, not after.",[15,93,95],{"id":94},"read-only-for-now","Read-only, for now",[20,97,98,99,102],{},"This release exposes reads only. Every operation is a ",[24,100,101],{},"GET",", and that is enforced\nby a test over the generated spec rather than by anyone remembering — adding a\nwrite endpoint fails the build until it is a deliberate decision.",[20,104,105],{},"So today you can build reporting, dashboards, alerting and sync-into-our-system\nintegrations. You cannot create a shipment or update an inquiry; those still\nhappen in the app.",[20,107,108],{},"Writes are the obvious next step, and they raise questions reads do not —\nidempotency, validation feedback, partial updates. When they arrive they will be\nnew endpoints alongside these, not changes to them.",[15,110,112],{"id":111},"keeping-up","Keeping up",[36,114,115,125,135],{},[39,116,117,124],{},[42,118,119],{},[87,120,122],{"href":121},"\u002Fopenapi.json",[24,123,121],{}," is generated from the API's own\ndefinitions on every deploy, so it always describes what is running. If you\ngenerate a client, regenerate it from this rather than pinning a copy.",[39,126,127,134],{},[42,128,129],{},[87,130,132],{"href":131},"\u002Fchangelog.md",[24,133,131],{}," is the plain-text changelog, served from\nthe API itself.",[39,136,137,142],{},[42,138,139],{},[87,140,141],{"href":89},"The changelog page"," is the same content, rendered.",[20,144,145,146,149],{},"There is no version number to poll and no ",[24,147,148],{},"Sunset"," header to watch. The spec is\nthe contract, and the changelog is the narration.",{"title":151,"searchDepth":152,"depth":152,"links":153},"",2,[154,155,156,157,158],{"id":17,"depth":152,"text":18},{"id":30,"depth":152,"text":31},{"id":63,"depth":152,"text":64},{"id":94,"depth":152,"text":95},{"id":111,"depth":152,"text":112},"What may change under you, what may not, and what read-only means for the first release.","md","current","mdi-tag-outline",{},true,8,"\u002Fversioning",{"title":6,"description":159},{"loc":166,"lastmod":169},"2026-08-19","IowVgrOV4ILo5ziU_V1NihyA7Sla-6WVY7S7ryNmndk",[172,178,182,188,193,198,203,208],{"path":173,"title":174,"navTitle":174,"icon":175,"group":176,"order":177},"\u002F","Overview","mdi-book-open-page-variant-outline","getting-started",1,{"path":179,"title":180,"navTitle":3,"icon":181,"group":176,"order":152},"\u002Fauthentication","Authentication","mdi-key-variant",{"path":183,"title":184,"navTitle":3,"icon":185,"group":186,"order":187},"\u002Ftracking","Shipment tracking","mdi-map-marker-path","working",3,{"path":189,"title":190,"navTitle":3,"icon":191,"group":186,"order":192},"\u002Frate-limits","Rate limits","mdi-speedometer",4,{"path":194,"title":195,"navTitle":3,"icon":196,"group":186,"order":197},"\u002Fpagination","Pagination and filtering","mdi-filter-variant",5,{"path":199,"title":200,"navTitle":3,"icon":201,"group":186,"order":202},"\u002Ferrors","Errors","mdi-alert-outline",6,{"path":204,"title":205,"navTitle":3,"icon":206,"group":186,"order":207},"\u002Fglossary","Glossary","mdi-book-alphabet",7,{"path":166,"title":6,"navTitle":3,"icon":162,"group":161,"order":165},1789636124841]