[{"data":1,"prerenderedAt":178},["ShallowReactive",2],{"changelog-nav":3,"\u002Fchangelog\u002Fdotnet":35},[4,7,11,15,19,23,27,31],{"path":5,"title":6},"\u002Fchangelog","Changelog home",{"title":8,"path":9,"stem":10},"Product changelog","\u002Fchangelog\u002Fproduct","3.changelog\u002F2.product",{"title":12,"path":13,"stem":14},"JavaScript changelog","\u002Fchangelog\u002Fjavascript","3.changelog\u002F3.javascript",{"title":16,"path":17,"stem":18},"API (Node.js) changelog","\u002Fchangelog\u002Fapi","3.changelog\u002F4.api",{"title":20,"path":21,"stem":22},"API (.NET) changelog","\u002Fchangelog\u002Fdotnet","3.changelog\u002F5.dotnet",{"title":24,"path":25,"stem":26},"iOS changelog","\u002Fchangelog\u002Fios","3.changelog\u002F6.iOS",{"title":28,"path":29,"stem":30},"Android changelog","\u002Fchangelog\u002Fandroid","3.changelog\u002F7.android",{"title":32,"path":33,"stem":34},"React Native changelog","\u002Fchangelog\u002Freact-native","3.changelog\u002F8.react native",{"id":36,"title":20,"body":37,"description":171,"extension":172,"meta":173,"navigation":174,"path":21,"seo":175,"sitemap":176,"stem":22,"__hash__":177},"changelog\u002F3.changelog\u002F5.dotnet.md",{"type":38,"value":39,"toc":163},"minimark",[40,45,60,75,80,85],[41,42,44],"h1",{"id":43},"api-net-sdk-changelog","API (.NET) SDK changelog",[46,47,48,49,59],"p",{},"The server-side SDK for .NET, published as ",[50,51,55],"a",{"href":52,"rel":53},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FRupt.Api",[54],"nofollow",[56,57,58],"code",{},"Rupt.Api"," on NuGet.",[46,61,62,63,68,69,74],{},"The format is based on ",[50,64,67],{"href":65,"rel":66},"https:\u002F\u002Fkeepachangelog.com\u002Fen\u002F1.0.0\u002F",[54],"Keep a Changelog",",\nand this project adheres to ",[50,70,73],{"href":71,"rel":72},"https:\u002F\u002Fsemver.org\u002Fspec\u002Fv2.0.0.html",[54],"Semantic Versioning",".",[76,77,79],"h2",{"id":78},"_100-2026-07-15","[1.0.0] - 2026-07-15",[81,82,84],"h3",{"id":83},"added","Added",[86,87,88,92,102,108,114,120,134,148],"ul",{},[89,90,91],"li",{},"Initial release, targeting the Rupt V3 API on .NET 10 with zero dependencies.",[89,93,94,97,98,101],{},[56,95,96],{},"GetEvaluationAsync"," and ",[56,99,100],{},"ConsumeEvaluationAsync"," to confirm evaluations server-side. Consuming is single-use: a replayed evaluation returns a 409.",[89,103,104,107],{},[56,105,106],{},"GetChallengeAsync"," to retrieve a challenge and its status.",[89,109,110,113],{},[56,111,112],{},"GetUserDevicesAsync"," to list a user's devices.",[89,115,116,119],{},[56,117,118],{},"UpdateUserAsync"," for partial updates to email, phone, metadata, and groups.",[89,121,122,123,126,127,130,131,74],{},"Automatic retries with exponential backoff on network errors and 5xx responses, plus typed exceptions: ",[56,124,125],{},"RuptApiException",", ",[56,128,129],{},"RuptNetworkException",", and ",[56,132,133],{},"RuptTimeoutException",[89,135,136,139,140,143,144,147],{},[56,137,138],{},"CancellationToken"," support on every method and an optional injected ",[56,141,142],{},"HttpClient"," for ",[56,145,146],{},"IHttpClientFactory"," setups.",[89,149,150,151,126,154,126,157,130,160,74],{},"Configurable ",[56,152,153],{},"Domain",[56,155,156],{},"Timeout",[56,158,159],{},"Retries",[56,161,162],{},"MaxRetryDelay",{"title":164,"searchDepth":165,"depth":165,"links":166},"",2,[167],{"id":78,"depth":165,"text":79,"children":168},[169],{"id":83,"depth":170,"text":84},3,"The server-side SDK for .NET, published as Rupt.Api on NuGet.","md",{},true,{"title":20,"description":171},{"loc":21},"DTTW2Np_t7I2idpPehZLhnvemiPfkTGIxbwfe8FgDQc",1784213794606]