TIP
Always call
init first. Save sessionid from the response — required for all other API types.Client API
Initialization
Start a new session. Returns sessionid, app stats, Ed25519 public key, and optional encrypted responses. Must be called before any other API type.
Query Params
type
string
required Example:
initRequest action name
name
string
required Example:
MyAppApplication name from Seller Panel
ownerid
string
required Example:
XXXXXXXXXX10-character Owner ID from panel credentials
ver
string
required Example:
1.0Client 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_charsMD5 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
| Message | How to fix |
|---|---|
Hash required | Hash Check is ON — send hash= MD5 of exe on every init |
Hash check failed | MD5 client sends ≠ whitelist in Panel → Settings → Hash Management. Drag & drop exe to add correct hash |
invalidver | Client ver must match App Version in panel exactly |