> ## Documentation Index
> Fetch the complete documentation index at: https://help.cryptolens.io/llms.txt
> Use this file to discover all available pages before exploring further.

# .NET: AI

> Signatures, models and behavior for SKM.V3.Methods.AI in the .NET SDK 4.0.54.

Methods that related to data gathering. A complete list
can be found here: [AI](/api-reference/generated/AI)

**Namespace:** `SKM.V3.Methods`\
**Version:** 4.0.54. Both packages; all six documented target frameworks.

<CodeGroup>
  ```csharp C# theme={null}
  public class AI
  ```

  ```vb VB.NET theme={null}
  Public Class AI
  ```
</CodeGroup>

These methods return a result object. Check `Result == ResultType.Success` before using its data. In version 4.0.54, handled request and JSON errors normally return `ResultType.Error` with a diagnostic `Message`. A non-null result alone does not mean the request succeeded. See [Request Errors](/libraries/dotnet-reference/settings#request-errors).

## Reading Daily Usage

Use `SKM.V3`, `SKM.V3.Methods` and `SKM.V3.Models` (with `using` in C# or `Imports` in VB.NET). Replace product ID `3349` and `YOUR_ACCESS_TOKEN`. The access token needs the **Usage Analytics permission**. The dates select 1–7 October 2026; `Limit=100` requests up to 100 records on this page.

<CodeGroup>
  ```csharp C# theme={null}
  var result = AI.GetDailyAggregates("YOUR_ACCESS_TOKEN", new GetUsageAnalyticsModel
  {
      ProductId = 3349,
      Start = "2026-10-01",
      End = "2026-10-07",
      Limit = 100
  });

  if (result != null && result.Result == ResultType.Success)
  {
      Console.WriteLine("Daily records on this page: " + result.Aggregates.Count);
  }
  else
  {
      Console.WriteLine(result == null ? "No response." : result.Message);
  }
  ```

  ```vb VB.NET theme={null}
  Dim result = AI.GetDailyAggregates("YOUR_ACCESS_TOKEN", New GetUsageAnalyticsModel With {
      .ProductId = 3349,
      .Start = "2026-10-01",
      .End = "2026-10-07",
      .Limit = 100
  })

  If result IsNot Nothing AndAlso result.Result = ResultType.Success Then
      Console.WriteLine("Daily records on this page: " & result.Aggregates.Count)
  Else
      Console.WriteLine(If(result Is Nothing, "No response.", result.Message))
  End If
  ```
</CodeGroup>

## Constructors

<a id="ctor-feddb7365a" />

### AI()

Creates an empty AI object. This constructor does not send an API request.

<CodeGroup>
  ```csharp C# theme={null}
  public AI()
  ```

  ```vb VB.NET theme={null}
  Public Sub New()
  ```
</CodeGroup>

## Methods

<a id="get-daily-aggregates-f4f8ca1a59" />

### GetDailyAggregates(string, GetUsageAnalyticsModel)

Retrieves daily Usage Analytics totals for the products and filters available to the access token.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetDailyAggregatesResult GetDailyAggregates(string token, GetUsageAnalyticsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetDailyAggregates(token As String, parameters As GetUsageAnalyticsModel) As GetDailyAggregatesResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetDailyAggregates)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. It must have Usage Analytics permission. |
| `parameters` | [`GetUsageAnalyticsModel`](/libraries/dotnet-reference/models/get-usage-analytics-model) | The filters and paging parameters for the request. |

**Returns:** [`GetDailyAggregatesResult`](/libraries/dotnet-reference/models/get-daily-aggregates-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetDailyAggregates](/api-reference/generated/GetDailyAggregates)

<a id="get-daily-country-aggregates-6e4612f51a" />

### GetDailyCountryAggregates(string, GetUsageAnalyticsModel)

Retrieves daily Usage Analytics totals grouped by country for the products and filters available to the access token.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetDailyCountryAggregatesResult GetDailyCountryAggregates(string token, GetUsageAnalyticsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetDailyCountryAggregates(token As String, parameters As GetUsageAnalyticsModel) As GetDailyCountryAggregatesResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetDailyCountryAggregates)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. It must have Usage Analytics permission. |
| `parameters` | [`GetUsageAnalyticsModel`](/libraries/dotnet-reference/models/get-usage-analytics-model) | The filters and paging parameters for the request. |

**Returns:** [`GetDailyCountryAggregatesResult`](/libraries/dotnet-reference/models/get-daily-country-aggregates-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetDailyCountryAggregates](/api-reference/generated/GetDailyCountryAggregates)

<a id="get-key-devices-bd86ebf4de" />

### GetKeyDevices(string, GetUsageAnalyticsModel)

Retrieves Usage Analytics device rows for license keys available to the access token.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetKeyDevicesResult GetKeyDevices(string token, GetUsageAnalyticsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetKeyDevices(token As String, parameters As GetUsageAnalyticsModel) As GetKeyDevicesResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetKeyDevices)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. It must have Usage Analytics permission. |
| `parameters` | [`GetUsageAnalyticsModel`](/libraries/dotnet-reference/models/get-usage-analytics-model) | The filters and paging parameters for the request. |

**Returns:** [`GetKeyDevicesResult`](/libraries/dotnet-reference/models/get-key-devices-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetKeyDevices](/api-reference/generated/GetKeyDevices)

<a id="get-key-usage-summaries-f96e71d323" />

### GetKeyUsageSummaries(string, GetUsageAnalyticsModel)

Retrieves Usage Analytics summaries for license keys available to the access token.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetKeyUsageSummariesResult GetKeyUsageSummaries(string token, GetUsageAnalyticsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetKeyUsageSummaries(token As String, parameters As GetUsageAnalyticsModel) As GetKeyUsageSummariesResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetKeyUsageSummaries)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. It must have Usage Analytics permission. |
| `parameters` | [`GetUsageAnalyticsModel`](/libraries/dotnet-reference/models/get-usage-analytics-model) | The filters and paging parameters for the request. |

**Returns:** [`GetKeyUsageSummariesResult`](/libraries/dotnet-reference/models/get-key-usage-summaries-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetKeyUsageSummaries](/api-reference/generated/GetKeyUsageSummaries)

<a id="get-license-activity-buckets-255765440e" />

### GetLicenseActivityBuckets(string, GetUsageAnalyticsModel)

Retrieves Usage Analytics license activity buckets for license keys available to the access token.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetLicenseActivityBucketsResult GetLicenseActivityBuckets(string token, GetUsageAnalyticsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetLicenseActivityBuckets(token As String, parameters As GetUsageAnalyticsModel) As GetLicenseActivityBucketsResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetLicenseActivityBuckets)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. It must have Usage Analytics permission. |
| `parameters` | [`GetUsageAnalyticsModel`](/libraries/dotnet-reference/models/get-usage-analytics-model) | The filters and paging parameters for the request. |

**Returns:** [`GetLicenseActivityBucketsResult`](/libraries/dotnet-reference/models/get-license-activity-buckets-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetLicenseActivityBuckets](/api-reference/generated/GetLicenseActivityBuckets)

<a id="get-web-apilog-855c198fe8" />

### GetWebAPILog(string, GetWebAPILogModel)

This method will retrieve a list of Web API Logs. All events that get logged are related
to a change of a license key or data object, eg. when license key gets activated or when
a property of data object changes. More details about the method that was called are specified
in the State field. You can read more about it here. These logs contain minimal information
but are guaranteed to be preserved. To get more information, especially about changes not
tracked in this log, please check out the Object Log.

<CodeGroup>
  ```csharp C# theme={null}
  public static GetWebAPILogResult GetWebAPILog(string token, GetWebAPILogModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function GetWebAPILog(token As String, parameters As GetWebAPILogModel) As GetWebAPILogResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/GetWebAPILog)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | The access token. Read more at [Auth](/api-reference/generated/Auth) |
| `parameters` | [`GetWebAPILogModel`](/libraries/dotnet-reference/models/get-web-apilog-model) | The parameters that the method needs |

**Returns:** [`GetWebAPILogResult`](/libraries/dotnet-reference/models/get-web-apilog-result). The API response. Check `Result` and `Message` before using the returned data.

Note: for more details, please see
[GetWebAPILog](/api-reference/generated/GetWebAPILog)

<a id="register-event-2509245ada" />

### RegisterEvent(string, RegisterEventModel)

Records an event, such as a feature being used or a purchase.

<CodeGroup>
  ```csharp C# theme={null}
  public static BasicResult RegisterEvent(string token, RegisterEventModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function RegisterEvent(token As String, parameters As RegisterEventModel) As BasicResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/RegisterEvent)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | An access token with the RegisterEvent permission. |
| `parameters` | [`RegisterEventModel`](/libraries/dotnet-reference/models/register-event-model) | The parameters that the method needs |

**Returns:** [`BasicResult`](/libraries/dotnet-reference/models/basic-result). A BasicResult indicating whether the request succeeded. Check `Result`; `Message` can provide additional information.

Note: for more details, please see
[RegisterEvent](/api-reference/generated/RegisterEvent)

<a id="register-events-4beaf0a9ea" />

### RegisterEvents(string, RegisterEventsModel)

Records several events in one request.

<CodeGroup>
  ```csharp C# theme={null}
  public static BasicResult RegisterEvents(string token, RegisterEventsModel parameters)
  ```

  ```vb VB.NET theme={null}
  Public Shared Function RegisterEvents(token As String, parameters As RegisterEventsModel) As BasicResult
  ```
</CodeGroup>

[Web API Reference](/api-reference/generated/RegisterEvent)

**Parameters**

| Name | Type | Description |
| - | - | - |
| `token` | `string` | An access token with the RegisterEvent permission. |
| `parameters` | [`RegisterEventsModel`](/libraries/dotnet-reference/models/register-events-model) | The parameters that the method needs |

**Returns:** [`BasicResult`](/libraries/dotnet-reference/models/basic-result). A BasicResult indicating whether the request succeeded. Check `Result`; `Message` can provide additional information.

Note: for more details, please see
[RegisterEvent](/api-reference/generated/RegisterEvent)

## FAQ

<AccordionGroup>
  <Accordion title="Which Usage Analytics Methods Are Available?" id="usage-analytics">
    Version 4.0.54 provides `GetDailyAggregates`, `GetDailyCountryAggregates`, `GetKeyUsageSummaries`, `GetKeyDevices` and `GetLicenseActivityBuckets`. They require the **Usage Analytics permission**. Their models and list results are linked below. Updates are asynchronous, so very recent activity may not appear yet.

    Although `GetEventsModel` and `GetEventsResult` are public types, this version has no public `AI.GetEvents` method. Use the [direct Web API](/api-reference/generated/GetEvents) if you need that operation.
  </Accordion>
</AccordionGroup>

[.NET SDK Reference](/libraries/dotnet-api) · [Reviewed Source Revision](https://github.com/Cryptolens/cryptolens-dotnet/tree/30aaf399ba53d9a111bee896c35bf557fa219394)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.