[{"data":1,"prerenderedAt":124},["ShallowReactive",2],{"doc:\u002Freference\u002Fmanagement\u002Fvisitors":3},{"page":4,"toc":119,"updated":123},{"path":5,"title":6,"seoTitle":7,"description":8,"blocks":9,"examples":99},"\u002Freference\u002Fmanagement\u002Fvisitors","Visitors","Management API: Erase a Visitor","Erase everything Fingerly holds about one visitor, for a data subject's deletion request, and follow each erasure until it is done. Admin keys only.",[10,13,22,27,32,37,39,45,47,51,54,57,59,81,84],{"type":11,"text":12},"p","Erase a visitor when somebody asks you to delete their data. This is **Erase this visitor** on an event in the dashboard, from code, so a deletion request your own systems handle can reach Fingerly too. Only **admin** management keys can erase; a developer key answers `403`.",{"type":14,"title":15,"fields":16},"fields","Path parameter",[17],{"name":18,"type":19,"text":20,"required":21},"organization_id","string","Your organization, from [Describe the key](\u002Freference\u002Fmanagement\u002Foverview#describe-the-key). A path naming any other organization answers `404`.",true,{"type":23,"level":24,"text":25,"id":26},"heading",2,"Erase a visitor","erase-a-visitor",{"type":28,"method":29,"path":30,"auth":31},"endpoint","DELETE","\u002Fapi\u002Fv1\u002Fmanagement\u002Forganizations\u002F{organization_id}\u002Fvisitors\u002F{visitor_id}","management",{"type":14,"title":15,"fields":33},[34],{"name":35,"type":19,"text":36,"required":21},"visitor_id","The `visitor_id` from an identification.",{"type":11,"text":38},"Answers `202` with the erasure. What happens, and when:",{"type":40,"items":41},"list",[42,43,44],"At once: the visitor's identity, so a device that comes back is a new visitor, and the webhook events that name it, including ones not yet delivered.","Within the hour: its stored identifications, their deferred reports and its [archived submissions](\u002Fdocs\u002Fdata-retention#archived-submissions).","Kept: totals already folded into your dashboards, which hold no visitor ID.",{"type":11,"text":46},"Asking again while an erasure is `pending` returns that one. A visitor ID your organization never saw is accepted and erases nothing, so an erasure is safe to send for any ID a person gives you.",{"type":48,"tone":49,"text":50},"callout","note","In an app, also call `deleteStoredIdentity()` on the device. That removes the install ID the device is recognised by, which lives on the device and not with Fingerly. See [account deletion and erasure](\u002Fdocs\u002Fapp-store-privacy#account-deletion-and-erasure).",{"type":23,"level":24,"text":52,"id":53},"List visitor erasures","list-visitor-erasures",{"type":28,"method":55,"path":56,"auth":31},"GET","\u002Fapi\u002Fv1\u002Fmanagement\u002Forganizations\u002F{organization_id}\u002Fvisitor-erasures",{"type":11,"text":58},"The last hundred erasures, newest first.",{"type":14,"title":60,"fields":61},"Response",[62],{"name":63,"type":64,"text":65,"children":66},"erasures","VisitorErasure[]","Each erasure.",[67,70,72,75,78],{"name":68,"type":19,"text":69},"id","The erasure's ID.",{"name":35,"type":19,"text":71},"The visitor it erases.",{"name":73,"type":19,"text":74},"status","`pending` while stored events and archived submissions are being removed, then `done`.",{"name":76,"type":19,"text":77},"requested_at","When it was asked for. The visitor's identity was removed at this moment.",{"name":79,"type":19,"text":80},"completed_at","When everything else was removed. Omitted while `pending`.",{"type":23,"level":24,"text":82,"id":83},"Errors","errors",{"type":85,"columns":86,"rows":90},"table",[87,88,89],"Status","Code","When",[91,95],[92,93,94],"`403`","`insufficient_role`","The key is a developer key.",[96,97,98],"`422`","`invalid_visitor_id`","The ID is not a visitor ID: visitor IDs are 20 letters and digits.",{"request":100,"response":108},[101,105],{"label":102,"lang":103,"code":104},"Erase","bash","curl -X DELETE \"https:\u002F\u002Fapi.fingerly.io\u002Fapi\u002Fv1\u002Fmanagement\u002Forganizations\u002F01a0a7f2-3c18-7b40-8d2e-5f6a9b1c0d37\u002Fvisitors\u002FX9pL2mRc7KvT4bQw8NdF\" \\\n  -H \"x-api-key: $FINGERLY_MANAGEMENT_KEY\"",{"label":106,"lang":103,"code":107},"List","curl \"https:\u002F\u002Fapi.fingerly.io\u002Fapi\u002Fv1\u002Fmanagement\u002Forganizations\u002F01a0a7f2-3c18-7b40-8d2e-5f6a9b1c0d37\u002Fvisitor-erasures\" \\\n  -H \"x-api-key: $FINGERLY_MANAGEMENT_KEY\"",[109,113,116],{"label":110,"lang":111,"code":112},"202","json","{\n  \"id\": \"01a0a864-9a51-7d23-b4f6-9c0d1e2f3a4b\",\n  \"visitor_id\": \"X9pL2mRc7KvT4bQw8NdF\",\n  \"status\": \"pending\",\n  \"requested_at\": \"2026-09-29T14:03:11Z\"\n}",{"label":114,"lang":111,"code":115},"200","{\n  \"erasures\": [\n    {\n      \"id\": \"01a0a864-9a51-7d23-b4f6-9c0d1e2f3a4b\",\n      \"visitor_id\": \"X9pL2mRc7KvT4bQw8NdF\",\n      \"status\": \"done\",\n      \"requested_at\": \"2026-09-29T14:03:11Z\",\n      \"completed_at\": \"2026-09-29T14:21:47Z\"\n    }\n  ]\n}",{"label":117,"lang":111,"code":118},"422","{\n  \"error\": {\n    \"code\": \"invalid_visitor_id\",\n    \"message\": \"that is not a visitor identifier\",\n    \"status\": 422\n  },\n  \"request_id\": \"01a0a84c-0f11-7a3e-9c2d-4b5e6f708192\"\n}",[120,121,122],{"id":26,"text":25,"level":24},{"id":53,"text":52,"level":24},{"id":83,"text":82,"level":24},"2026-09-29T20:29:06.000Z",1793630453371]