[{"data":1,"prerenderedAt":136},["ShallowReactive",2],{"doc:\u002Fdocs\u002Fversioning":3},{"page":4,"toc":127,"updated":135},{"path":5,"title":6,"seoTitle":7,"description":8,"blocks":9},"\u002Fdocs\u002Fversioning","Versioning and support","API Versioning, SDK Support and Deprecation Policy","How the API, webhooks, signals and SDKs are versioned, what counts as a breaking change, how long old versions are supported, and how deprecations are announced.",[10,13,18,20,41,43,47,50,52,59,62,67,70,72,86,89,93,107,109,112,117,119,122],{"type":11,"text":12},"p","An integration should keep working without changes until you choose to upgrade it. This page describes what Fingerly may change without notice, what it will not, and how long older versions are supported.",{"type":14,"level":15,"text":16,"id":17},"heading",2,"The API","the-api",{"type":11,"text":19},"The version is part of the path: `\u002Fapi\u002Fv1`. Within a version, changes are additive.",{"type":21,"columns":22,"rows":25},"table",[23,24],"Within a version, Fingerly may","Within a version, Fingerly will not",[26,29,32,35,38],[27,28],"Add endpoints.","Remove or rename an endpoint or a field.",[30,31],"Add optional request fields and headers.","Make an optional request field required.",[33,34],"Add response fields and headers.","Change a field's type or what it means.",[36,37],"Add values to fields that list them, such as a new `anonymity_network` or error code.","Change how requests are authenticated.",[39,40],"Add signals and signal groups to `triggers`.","Change what an existing error code means.",{"type":11,"text":42},"A change that is not additive ships only in a new version, such as `\u002Fapi\u002Fv2`. The previous version stays available for at least 12 months after the new one is released.",{"type":44,"tone":45,"text":46},"callout","tip","Write clients that ignore fields, values, signals and event types they do not know. Every Fingerly SDK already does.",{"type":14,"level":15,"text":48,"id":49},"Webhooks","webhooks",{"type":11,"text":51},"Webhook events follow the same rules, versioned by the envelope's `version` field.",{"type":53,"items":54},"list",[55,56,57,58],"New fields may be added to the envelope and to `data`.","New event types are sent only to endpoints that subscribe to them.","A change that is not additive ships under a new envelope version, and the previous version is kept for at least 12 months.","The signature scheme does not change within a version.",{"type":14,"level":15,"text":60,"id":61},"Signals","signals",{"type":53,"items":63},[64,65,66],"**Names are permanent.** A signal's name never changes meaning. If what a detection measures changes, it becomes a new signal with a new name, and the old name is never reused.","**New signals may appear** at any time, with a default weight. A new signal adds to the score of organizations that use default weights for it.","**Default weights and the default threshold** can change. Changes are announced in the [changelog](\u002Fdocs\u002Fchangelog) before they apply. Weights you set yourself are never changed.",{"type":14,"level":15,"text":68,"id":69},"SDKs","sdks",{"type":11,"text":71},"Every SDK follows [semantic versioning](https:\u002F\u002Fsemver.org) on its own schedule, and every current SDK targets API `v1`.",{"type":21,"columns":73,"rows":76},[74,75],"Release","May contain",[77,80,83],[78,79],"Patch, such as 1.2.3 to 1.2.4","Fixes only.",[81,82],"Minor, such as 1.2.0 to 1.3.0","New features and new signals, without breaking changes.",[84,85],"Major, such as 1.0.0 to 2.0.0","Breaking changes, including a higher minimum platform version.",{"type":44,"tone":87,"text":88},"note","The SDKs are at 0.1. Until an SDK reaches 1.0, a minor release can contain breaking changes, as semantic versioning allows. Every one is listed in the changelog with what to change.",{"type":14,"level":90,"text":91,"id":92},3,"Support windows","support-windows",{"type":21,"columns":94,"rows":97},[95,96],"Version","Support",[98,101,104],[99,100],"The latest major version","New features, fixes and security fixes.",[102,103],"The previous major version","Security fixes and critical fixes for 12 months after the next major version is released.",[105,106],"Older versions","Keep working for as long as the API version they target is supported, without fixes.",{"type":11,"text":108},"Platform minimums, such as the oldest iOS or Node.js version an SDK runs on, are listed in [browser and device support](\u002Fdocs\u002Fbrowser-and-device-support). Raising one is a breaking change.",{"type":14,"level":15,"text":110,"id":111},"Deprecations","deprecations",{"type":53,"items":113},[114,115,116],"Every deprecation is announced in the [changelog](\u002Fdocs\u002Fchangelog), with the date after which the deprecated version, endpoint or field may be removed.","Deprecated features are marked on their pages in these docs from the day they are deprecated.","Nothing is removed before the end of its support window.",{"type":11,"text":118},"Security fixes are the exception: when a vulnerability can only be closed by a change that is not additive, Fingerly makes it as soon as it must, and says so in the changelog.",{"type":14,"level":15,"text":120,"id":121},"Staying current","staying-current",{"type":53,"items":123},[124,125,126],"Pin SDK versions in your lockfile, and upgrade deliberately.","Read the changelog before a major upgrade.","Check **Insights > Traffic** for SDK versions still sending identifications before you retire an old app release.",[128,129,130,131,132,133,134],{"id":17,"text":16,"level":15},{"id":49,"text":48,"level":15},{"id":61,"text":60,"level":15},{"id":69,"text":68,"level":15},{"id":92,"text":91,"level":90},{"id":111,"text":110,"level":15},{"id":121,"text":120,"level":15},"2026-09-17T16:58:12.000Z",1789667797516]