LibreAuth Nut.exe Visit Website
TIP
Always call init first. Save sessionid from the response — required for all other API types.
Client API

Initialization

POST https://libreauth.nutexe.dev/api/1.3/

Start a new session. Returns sessionid, app stats, Ed25519 public key, and optional encrypted responses. Must be called before any other API type.

LibreAuth API v1.3 · type=init

Query Params

type string required
Example: init
Request action name
name string required
Example: MyApp
Application name from Seller Panel
ownerid string required
Example: XXXXXXXXXX
10-character Owner ID from panel credentials
ver string required
Example: 1.0
Client version — must match App Version in panel
enckey string optional
35-character encryption key for AES response encryption
hash string optional
Example: md5_of_your_exe_32_chars
MD5 of your compiled exe (32 hex). Required when Hash Check is enabled in panel
token string optional
Token file signature when Token File Check is enabled
thash string optional
MD5 of token.dat when Token File Check is enabled

Request Code Samples

Shell
curl -X POST 'https://libreauth.nutexe.dev/api/1.3/' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'type=init&name=MyApp&ownerid=XXXXXXXXXX&ver=1.0&hash=md5_of_your_exe_32_chars'
Go
app := libreauth.New("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/")
app.Hash = "md5_of_your_exe_32_chars"
app.Init()
PHP
<?php
$ch = curl_init('https://libreauth.nutexe.dev/api/1.3/');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => 'type=init&name=MyApp&ownerid=XXXXXXXXXX&ver=1.0&hash=md5_of_your_exe_32_chars', CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], CURLOPT_RETURNTRANSFER => true]);
echo curl_exec($ch);
Python
import requests
res = requests.post('https://libreauth.nutexe.dev/api/1.3/', data={
    'type': 'init',
    'name': 'MyApp',
    'ownerid': 'XXXXXXXXXX',
    'ver': '1.0',
    'hash': 'md5_of_your_exe_32_chars'
})
print(res.json())
HTTP
POST /api/1.3/ HTTP/1.1
Host: libreauth.nutexe.dev
Content-Type: application/x-www-form-urlencoded

type=init&name=MyApp&ownerid=XXXXXXXXXX&ver=1.0&hash=md5_of_your_exe_32_chars
C#
var app = new LibreAuth("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
await app.InitAsync();
C++
LibreAuth::Client app("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
app.init();
JavaScript
const body = new URLSearchParams({
  type: 'init',
  name: 'MyApp',
  ownerid: 'XXXXXXXXXX',
  ver: '1.0',
  hash: 'md5_of_your_exe_32_chars'
});
fetch('https://libreauth.nutexe.dev/api/1.3/', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: body.toString() })
  .then(r => r.json()).then(console.log);
TypeScript
const app = new LibreAuth('MyApp', 'XXXXXXXXXX', '1.0', 'https://libreauth.nutexe.dev/api/1.3/');
await app.init();
Java
LibreAuth app = new LibreAuth("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
app.init();
Rust
let mut app = LibreAuth::new("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
app.init()?;
Ruby
app = LibreAuth.new('MyApp', 'XXXXXXXXXX', '1.0', 'https://libreauth.nutexe.dev/api/1.3/')
app.init
Perl
my $app = LibreAuth->new('MyApp', 'XXXXXXXXXX', '1.0', 'https://libreauth.nutexe.dev/api/1.3/');
$app->init;
Lua
local app = LibreAuth.new('MyApp', 'XXXXXXXXXX', '1.0', 'https://libreauth.nutexe.dev/api/1.3/')
app:init()
React
const app = new LibreAuth('MyApp', 'XXXXXXXXXX', '1.0', process.env.REACT_APP_API_URL);
await app.Init();
Vue
const app = new LibreAuth('MyApp', 'XXXXXXXXXX', '1.0', import.meta.env.VITE_API_URL);
await app.Init();
Unity
var app = new LibreAuth("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
await app.InitAsync();
WPF
var app = new LibreAuth("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
await app.InitAsync();
VB.NET
var app = new LibreAuth("MyApp", "XXXXXXXXXX", "1.0", "https://libreauth.nutexe.dev/api/1.3/");
await app.InitAsync();

Responses

application/json · object
{
  "success": true,
  "message": "Initialized",
  "sessionid": "abc123...",
  "ownerid": "XXXXXXXXXX",
  "appinfo": {
    "numUsers": "10",
    "numOnlineUsers": "3",
    "numKeys": "50",
    "version": "1.0",
    "customerPanelLink": "..."
  },
  "newSession": true,
  "nonce": "...",
  "pubkey": "ed25519_public_key_hex"
}
application/json · object
{
  "success": false,
  "message": "Hash required"
}
application/json · object
{
  "success": false,
  "message": "Hash check failed"
}
application/json · object
{
  "success": false,
  "message": "invalidver",
  "download": "https://..."
}

Common Errors

MessageHow to fix
Hash requiredHash Check is ON — send hash= MD5 of exe on every init
Hash check failedMD5 client sends ≠ whitelist in Panel → Settings → Hash Management. Drag & drop exe to add correct hash
invalidverClient ver must match App Version in panel exactly