[{"data":1,"prerenderedAt":583},["ShallowReactive",2],{"navigation":3,"\u002Fgraphql-api\u002Fguides\u002Ffind-unused-licenses":99,"\u002Fgraphql-api\u002Fguides\u002Ffind-unused-licenses-surround":578},[4,16,52,71,91],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7,"children":-1},"Introduction",{"title":12,"path":13,"stem":14,"children":-1},"Authentication","\u002Fgetting-started\u002Fauthentication","1.getting-started\u002F2.authentication","i-lucide-rocket",{"title":17,"path":18,"stem":19,"children":20,"icon":51},"GraphQL API","\u002Fgraphql-api","2.graphql-api\u002F1.index",[21,23,27,31,35,39,43,47],{"title":22,"path":18,"stem":19,"children":-1},"API Overview",{"title":24,"path":25,"stem":26,"children":-1},"Querying Patterns","\u002Fgraphql-api\u002Fquerying","2.graphql-api\u002F2.querying",{"title":28,"path":29,"stem":30,"children":-1},"Mutation Patterns","\u002Fgraphql-api\u002Fmutations","2.graphql-api\u002F3.mutations",{"title":32,"path":33,"stem":34,"children":-1},"List SaaS Applications","\u002Fgraphql-api\u002Fguides\u002Flist-applications","2.graphql-api\u002F4.guides\u002F1.list-applications",{"title":36,"path":37,"stem":38,"children":-1},"Find Unused Licenses","\u002Fgraphql-api\u002Fguides\u002Ffind-unused-licenses","2.graphql-api\u002F4.guides\u002F2.find-unused-licenses",{"title":40,"path":41,"stem":42,"children":-1},"Retrieve Upcoming Renewals","\u002Fgraphql-api\u002Fguides\u002Fupcoming-renewals","2.graphql-api\u002F4.guides\u002F3.upcoming-renewals",{"title":44,"path":45,"stem":46,"children":-1},"Handle GraphQL Errors","\u002Fgraphql-api\u002Fguides\u002Fhandle-errors","2.graphql-api\u002F4.guides\u002F4.handle-errors",{"title":48,"path":49,"icon":50},"API Reference","\u002Fgql-schema-reference","i-lucide-file-code","i-lucide-braces",{"title":53,"path":54,"stem":55,"children":56,"icon":70},"Sync API","\u002Fsync-api","3.sync-api\u002F1.index",[57,59,63,67],{"title":58,"path":54,"stem":55,"children":-1},"Viio Sync API",{"title":60,"path":61,"stem":62,"children":-1},"Quickstart","\u002Fsync-api\u002Fquickstart","3.sync-api\u002F2.quickstart",{"title":64,"path":65,"icon":66},"Examples","\u002Fsync-api\u002Faws-lambda-python","i-lucide-code-xml",{"title":68,"path":69,"icon":50},"SDK Reference","\u002Fsync-api\u002Fapi-reference","i-lucide-refresh-cw",{"title":72,"path":73,"stem":74,"children":75,"icon":90},"MCP Server","\u002Fmcp-server","4.mcp-server\u002F1.index",[76,78,82,86],{"title":77,"path":73,"stem":74,"children":-1},"Viio MCP Server",{"title":79,"path":80,"stem":81,"children":-1},"Setup","\u002Fmcp-server\u002Fsetup","4.mcp-server\u002F2.setup",{"title":83,"path":84,"stem":85,"children":-1},"Available Tools","\u002Fmcp-server\u002Ftools","4.mcp-server\u002F3.tools",{"title":87,"path":88,"stem":89,"children":-1},"SaaS Analysis Use Cases","\u002Fmcp-server\u002Fuse-cases","4.mcp-server\u002F4.use-cases","i-lucide-bot",{"title":92,"path":93,"stem":94,"children":95,"icon":98},"AI Integration","\u002Fai","5.ai\u002F1.index",[96],{"title":97,"path":93,"stem":94,"children":-1},"llms.txt","i-lucide-sparkles",{"id":100,"title":36,"body":101,"dateModified":568,"datePublished":568,"description":569,"extension":570,"links":571,"meta":572,"navigation":573,"path":37,"seo":574,"stem":38,"__hash__":577},"docs\u002F2.graphql-api\u002F4.guides\u002F2.find-unused-licenses.md",{"type":102,"value":103,"toc":562},"minimark",[104,113,118,474,478,506,509,513,516,520,558],[105,106,107,108,112],"p",{},"Use the ",[109,110,111],"code",{},"licenses"," query with a license-activity filter to identify unused assignments and their potential annual savings.",[114,115,117],"h2",{"id":116},"request","Request",[119,120,125],"pre",{"className":121,"code":122,"language":123,"meta":124,"style":124},"language-graphql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","query FindUnusedLicenses($first: Int!, $after: String) {\n  licenses(\n    first: $first\n    after: $after\n    where: { state: { activity: { eq: UNUSED } } }\n  ) {\n    nodes {\n      id\n      holder {\n        name\n        email\n        employeeId\n      }\n      plan {\n        id\n        name\n        integration {\n          name\n        }\n      }\n      annualPrice {\n        amount\n        currency\n      }\n      potentialSaving {\n        amount\n        currency\n      }\n      state {\n        ... on UnusedLicenseState {\n          activity\n          reason\n        }\n      }\n    }\n    pageInfo {\n      hasNextPage\n      endCursor\n    }\n    totalCount\n  }\n}\n","graphql","",[109,126,127,172,178,189,200,234,242,250,256,264,270,276,282,288,296,302,307,315,321,327,332,340,346,352,357,365,370,375,380,388,403,409,415,420,425,431,439,445,451,456,462,468],{"__ignoreMap":124},[128,129,132,136,140,144,148,151,155,158,161,163,166,169],"span",{"class":130,"line":131},"line",1,[128,133,135],{"class":134},"sMK4o","query",[128,137,139],{"class":138},"s2Zo4"," FindUnusedLicenses",[128,141,143],{"class":142},"sTEyZ","(",[128,145,147],{"class":146},"sHdIc","$first",[128,149,150],{"class":134},":",[128,152,154],{"class":153},"sBMFI"," Int",[128,156,157],{"class":134},"!,",[128,159,160],{"class":146}," $after",[128,162,150],{"class":134},[128,164,165],{"class":153}," String",[128,167,168],{"class":142},") ",[128,170,171],{"class":134},"{\n",[128,173,175],{"class":130,"line":174},2,[128,176,177],{"class":142},"  licenses(\n",[128,179,181,184,186],{"class":130,"line":180},3,[128,182,183],{"class":146},"    first",[128,185,150],{"class":134},[128,187,188],{"class":142}," $first\n",[128,190,192,195,197],{"class":130,"line":191},4,[128,193,194],{"class":146},"    after",[128,196,150],{"class":134},[128,198,199],{"class":142}," $after\n",[128,201,203,206,208,211,215,217,219,222,224,226,229,231],{"class":130,"line":202},5,[128,204,205],{"class":146},"    where",[128,207,150],{"class":134},[128,209,210],{"class":142}," { ",[128,212,214],{"class":213},"sfazB","state",[128,216,150],{"class":134},[128,218,210],{"class":142},[128,220,221],{"class":213},"activity",[128,223,150],{"class":134},[128,225,210],{"class":142},[128,227,228],{"class":213},"eq",[128,230,150],{"class":134},[128,232,233],{"class":142}," UNUSED } } }\n",[128,235,237,240],{"class":130,"line":236},6,[128,238,239],{"class":142},"  ) ",[128,241,171],{"class":134},[128,243,245,248],{"class":130,"line":244},7,[128,246,247],{"class":142},"    nodes ",[128,249,171],{"class":134},[128,251,253],{"class":130,"line":252},8,[128,254,255],{"class":142},"      id\n",[128,257,259,262],{"class":130,"line":258},9,[128,260,261],{"class":142},"      holder ",[128,263,171],{"class":134},[128,265,267],{"class":130,"line":266},10,[128,268,269],{"class":142},"        name\n",[128,271,273],{"class":130,"line":272},11,[128,274,275],{"class":142},"        email\n",[128,277,279],{"class":130,"line":278},12,[128,280,281],{"class":142},"        employeeId\n",[128,283,285],{"class":130,"line":284},13,[128,286,287],{"class":134},"      }\n",[128,289,291,294],{"class":130,"line":290},14,[128,292,293],{"class":142},"      plan ",[128,295,171],{"class":134},[128,297,299],{"class":130,"line":298},15,[128,300,301],{"class":142},"        id\n",[128,303,305],{"class":130,"line":304},16,[128,306,269],{"class":142},[128,308,310,313],{"class":130,"line":309},17,[128,311,312],{"class":142},"        integration ",[128,314,171],{"class":134},[128,316,318],{"class":130,"line":317},18,[128,319,320],{"class":142},"          name\n",[128,322,324],{"class":130,"line":323},19,[128,325,326],{"class":134},"        }\n",[128,328,330],{"class":130,"line":329},20,[128,331,287],{"class":134},[128,333,335,338],{"class":130,"line":334},21,[128,336,337],{"class":142},"      annualPrice ",[128,339,171],{"class":134},[128,341,343],{"class":130,"line":342},22,[128,344,345],{"class":142},"        amount\n",[128,347,349],{"class":130,"line":348},23,[128,350,351],{"class":142},"        currency\n",[128,353,355],{"class":130,"line":354},24,[128,356,287],{"class":134},[128,358,360,363],{"class":130,"line":359},25,[128,361,362],{"class":142},"      potentialSaving ",[128,364,171],{"class":134},[128,366,368],{"class":130,"line":367},26,[128,369,345],{"class":142},[128,371,373],{"class":130,"line":372},27,[128,374,351],{"class":142},[128,376,378],{"class":130,"line":377},28,[128,379,287],{"class":134},[128,381,383,386],{"class":130,"line":382},29,[128,384,385],{"class":142},"      state ",[128,387,171],{"class":134},[128,389,391,394,397,400],{"class":130,"line":390},30,[128,392,393],{"class":134},"        ...",[128,395,396],{"class":134}," on",[128,398,399],{"class":153}," UnusedLicenseState",[128,401,402],{"class":134}," {\n",[128,404,406],{"class":130,"line":405},31,[128,407,408],{"class":142},"          activity\n",[128,410,412],{"class":130,"line":411},32,[128,413,414],{"class":142},"          reason\n",[128,416,418],{"class":130,"line":417},33,[128,419,326],{"class":134},[128,421,423],{"class":130,"line":422},34,[128,424,287],{"class":134},[128,426,428],{"class":130,"line":427},35,[128,429,430],{"class":134},"    }\n",[128,432,434,437],{"class":130,"line":433},36,[128,435,436],{"class":142},"    pageInfo ",[128,438,171],{"class":134},[128,440,442],{"class":130,"line":441},37,[128,443,444],{"class":142},"      hasNextPage\n",[128,446,448],{"class":130,"line":447},38,[128,449,450],{"class":142},"      endCursor\n",[128,452,454],{"class":130,"line":453},39,[128,455,430],{"class":134},[128,457,459],{"class":130,"line":458},40,[128,460,461],{"class":142},"    totalCount\n",[128,463,465],{"class":130,"line":464},41,[128,466,467],{"class":134},"  }\n",[128,469,471],{"class":130,"line":470},42,[128,472,473],{"class":134},"}\n",[114,475,477],{"id":476},"interpret-the-result","Interpret the result",[479,480,481,488,494,500],"ul",{},[482,483,484,487],"li",{},[109,485,486],{},"potentialSaving"," is the estimated annual saving associated with the license.",[482,489,490,493],{},[109,491,492],{},"holder"," identifies the employee or external user assigned to the license.",[482,495,496,499],{},[109,497,498],{},"UnusedLicenseState.reason"," explains why Viio classified the license as unused.",[482,501,502,505],{},[109,503,504],{},"plan.integration.name"," identifies the application or integration that supplied the license data.",[105,507,508],{},"Group savings by currency before summing them. Convert currencies with an approved finance rate if you need a single reporting currency.",[114,510,512],{"id":511},"operational-safeguards","Operational safeguards",[105,514,515],{},"Confirm the application owner and employee context before reclaiming access. Usage signals can be delayed or incomplete, and some assignments may be required for compliance, seasonal work, or planned onboarding.",[114,517,519],{"id":518},"related-reference","Related reference",[479,521,522,531,540,549],{},[482,523,524],{},[525,526,528,530],"a",{"href":527},"\u002Fgql-schema-reference\u002Flicenses#licenses-query",[109,529,111],{}," query",[482,532,533],{},[525,534,536,539],{"href":535},"\u002Fgql-schema-reference\u002Flicenses#licensefilterinput-input",[109,537,538],{},"LicenseFilterInput"," input",[482,541,542],{},[525,543,545,548],{"href":544},"\u002Fgql-schema-reference\u002Flicenses#license-object",[109,546,547],{},"License"," type",[482,550,551],{},[525,552,554,557],{"href":553},"\u002Fgql-schema-reference\u002Flicenses#licenseactivity-enum",[109,555,556],{},"LicenseActivity"," enum",[559,560,561],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":124,"searchDepth":131,"depth":174,"links":563},[564,565,566,567],{"id":116,"depth":174,"text":117},{"id":476,"depth":174,"text":477},{"id":511,"depth":174,"text":512},{"id":518,"depth":174,"text":519},"2026-07-30","Query unused licenses and potential annual savings from your Viio workspace.","md",null,{},true,{"title":575,"description":576},"Find Unused SaaS Licenses with the Viio GraphQL API","Use Viio GraphQL filters to find unused licenses, identify holders, and calculate potential annual SaaS savings.","PEqeZAcYYPTGNOwQj0lVJbJixywC-qXqRH2F--edOlc",[579,581],{"title":32,"path":33,"stem":34,"description":580,"children":-1},"Retrieve applications from your Viio workspace with pagination and portfolio details.",{"title":40,"path":41,"stem":42,"description":582,"children":-1},"Query and sort SaaS license plans by upcoming contract-renewal date.",1787319038267]