https://github.com/avestura/kuttsharp
🔪 .NET Package for kutt.it url shortener
https://github.com/avestura/kuttsharp
chsarp kutt netstandard netstandard20 nuget url-shortener url-shortening
Last synced: 21 days ago
JSON representation
🔪 .NET Package for kutt.it url shortener
- Host: GitHub
- URL: https://github.com/avestura/kuttsharp
- Owner: avestura
- License: mit
- Created: 2018-09-01T10:08:41.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T08:57:05.000Z (almost 3 years ago)
- Last Synced: 2025-04-06T12:03:12.517Z (7 months ago)
- Topics: chsarp, kutt, netstandard, netstandard20, nuget, url-shortener, url-shortening
- Language: C#
- Homepage: https://kutt.it
- Size: 44.9 KB
- Stars: 30
- Watchers: 4
- Forks: 5
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# KuttSharp
.NET Package for kutt.it url shortener
## ⚠️ WARNING
⚠️ KuttSharp currently only supports v1 of the Kutt API. I have no plans to support v2, therefore you might want to look for an alternative.
ℹ️ Since the newer version of Kutt API uses [OpenAPI](https://www.openapis.org/), the best option probably would be to just use an OpenAPI client generator.
## Installation
[](https://www.nuget.org/packages/KuttSharp)
[](https://www.nuget.org/packages/KuttSharp)
[](https://dev.azure.com/Avestura/KuttSharp/_build/latest?definitionId=8)
Simply add `KuttSharp` nuget package to your project
## API
First create a new instance of `KuttApi` then use examples below:
```csharp
// Use defualt Kutt server
var api = new KuttApi("apiKey");
// Use a self-hosted Kutt server as string or System.Uri
var api = new KuttApi("apiKey", "https://MyOwnSelfHostedKutt.it")
```
#### Submit
```csharp
var submitedItem = await api.SubmitAsync(
target: "https://example.com",
customUrl: "customUrl",
password: "password",
reuse: true
);
// Now you can use properties of created item
if (submitedItem.IsPasswordRequired)
{
Console.WriteLine(submitedItem.CreatedAt.Year);
}
```
#### Delete
```csharp
await api.DeleteAsync(id: "url_id");
```
#### GetUrls
```csharp
var list = await api.GetUrlsAsync();
Console.WriteLine($"First item visits count: {list[0].Visits}");
```
#### GetStats
```csharp
var stats = await api.GetStatsAsync(id: "url_id");
Console.WriteLine(stats.LastWeek.ClientStats.Referrer[0].Name);
```
## Error handling
```csharp
var api = new KuttApi("apiKey");
try
{
var result = await api.SubmitAsync("https://example.com", reuse: true);
}
catch (KuttException kex) when (kex.Message == "No id has been provided.")
{
// Handle custom kutt exception
}
catch (KuttException)
{
// Handle all other kutt exceptions
}
catch
{
// Handle other errors
}
```