API Reference

Login

Authenticate against an active session using a license key, username and password, or hardware device.

License Key Login

Authenticate a license key against an active session. Use this when your app distributes license keys rather than user accounts.

POST /api/v2/licenses https://authly.cc

Parameters

Field Description
session_id Required Active session from a successful Init call.
license_key Required The license key to authenticate.
sid / hwid Required Unique system identifier used to enforce device limits and lock the session to this machine.
ip Optional Client IP address. If omitted, the server infers it from request headers.

Example Request

{
  "session_id": "dc1ce...a3a75",
  "license_key": "XXXXX-XXXXX-XXXXX-XXXXX",
  "sid": "S-1-5-21-....",
  "ip": "102.88.xxx.xxx"
}

Responses

Login successful. Returns license details and a refreshed session.

{
  "success": true,
  "message": "License login successful",
  "license": {
    "license_key": "XXXXX-XXXXX-XXXXX-XXXXX",
    "owner_id": "uuid",
    "app_name": "MyApp",
    "subscription": "Premium",
    "subscription_level": 2,
    "expiry_date": "2026-12-31 23-59-59",
    "max_devices": 2,
    "email": "[email protected]",
    "sid": "S-1-5-21-....",
    "hwid": "S-1-5-21-....",
    "last_login": "2026-05-29 10-30-00"
  }
}

MISSING_FIELDS — One or more required fields were not sent.

{
  "success": false,
  "code": "MISSING_FIELDS",
  "message": "Required fields are missing"
}

Session check failed. Codes: INVALID_SESSION, SESSION_EXPIRED.

{
  "success": false,
  "code": "INVALID_SESSION",
  "message": "Invalid or expired session"
}

Access blocked by license status or device policy. Codes: LICENSE_BANNED, LICENSE_PAUSED, LICENSE_EXPIRED, DEVICE_LIMIT_REACHED.

{
  "success": false,
  "code": "LICENSE_BANNED",
  "message": "This license has been banned"
}

LICENSE_NOT_FOUND — No license matched the given key in this app.

{
  "success": false,
  "code": "LICENSE_NOT_FOUND",
  "message": "License not found"
}

INTERNAL — Unexpected server-side error.

{
  "success": false,
  "code": "INTERNAL",
  "message": "Internal server error"
}

Username & Password Login

Authenticate a user account with username and password against an active session.

POST /api/v2/login https://authly.cc

Parameters

Field Description
session_id Required Active session from a successful Init call.
username Required The user's account username.
password Required The user's account password.
sid / hwid Required Unique system identifier used to enforce device limits and lock the session to this machine.
ip Optional Client IP address. If omitted, the server infers it from request headers.

Example Request

{
  "session_id": "dc1ce...a3a75",
  "username": "xela",
  "password": "hunter2",
  "sid": "S-1-5-21-....",
  "ip": "102.88.xxx.xxx"
}

Responses

Login successful. Returns user details and a refreshed session.

{
  "success": true,
  "message": "Login success",
  "session_id": "hex_string",
  "user": {
    "username": "xela",
    "email": "[email protected]",
    "subscription": "Premium",
    "subscription_level": 2,
    "expiry_date": "2026-12-31 23-59-59",
    "device_limit": 2,
    "current_devices": 1,
    "sid": "S-1-5-21-....",
    "hwid": "S-1-5-21-....",
    "last_login": "2026-05-29 10-30-00",
    "registered_at": "2026-01-01 00-00-00",
    "linked_license_key": "XXXXX-XXXXX-XXXXX-XXXXX"
  }
}

MISSING_FIELDS — One or more required fields were not sent.

{
  "success": false,
  "code": "MISSING_FIELDS",
  "message": "Required fields are missing"
}

Session or credential check failed. Codes: INVALID_SESSION, SESSION_EXPIRED, INVALID_PASSWORD.

{
  "success": false,
  "code": "INVALID_PASSWORD",
  "message": "Invalid password"
}

Access blocked by security policy or account status. Codes: IP_BLOCKED, VPN_BLOCKED, COUNTRY_BLOCKED, SID_BLOCKED, USER_BANNED, USER_SUSPENDED, USER_EXPIRED, DEVICE_LIMIT_REACHED.

{
  "success": false,
  "code": "USER_BANNED",
  "message": "User is banned"
}

USER_NOT_FOUND — No user matched the given username in this app.

{
  "success": false,
  "code": "USER_NOT_FOUND",
  "message": "User not found"
}

INTERNAL — Unexpected server-side error.

{
  "success": false,
  "code": "INTERNAL",
  "message": "Internal server error"
}

Device Login

Authenticate a hardware device (motherboard or processor) against the active session. Returns device subscription details on success.

POST /api/v2/device-auth https://authly.cc

Parameters

FieldDescription
session_id Required Active session ID from a successful Init call.
device_type Required Type of hardware ID. Must be motherboard or processor.
device_id Required Unique hardware identifier string extracted from the client machine.

Example Request

{
  "session_id": "dc1ce...a3a75",
  "device_type": "motherboard",
  "device_id": "PDPCF001X4YJ2Q"
}

Responses

Device authenticated successfully.

{
  "success": true,
  "message": "Device authentication successful",
  "device": {
    "device_type": "motherboard",
    "device_id": "PDPCF001X4YJ2Q",
    "name": "My PC",
    "subscription": "Premium",
    "subscription_level": 1,
    "expiry_date": "2026-12-31 23-59-59",
    "last_login": "2026-05-31 10-30-00",
    "registered_at": "2026-01-01 00-00-00",
    "activated": true
  }
}

Missing fields or invalid device type. Codes: MISSING_FIELDS, INVALID_DEVICE_TYPE.

{
  "success": false,
  "code": "INVALID_DEVICE_TYPE",
  "message": "Device type must be 'motherboard' or 'processor'"
}

Session check failed. Codes: INVALID_SESSION, SESSION_EXPIRED.

{
  "success": false,
  "code": "SESSION_EXPIRED",
  "message": "Session has expired"
}

Device banned, paused, or expired. Codes: [DEVICE]_BANNED, [DEVICE]_PAUSED, [DEVICE]_EXPIRED.

{
  "success": false,
  "code": "MOTHERBOARD_BANNED",
  "message": "This device identifier is banned"
}

Device not registered. Codes: MOTHERBOARD_NOT_FOUND, PROCESSOR_NOT_FOUND.

{
  "success": false,
  "code": "MOTHERBOARD_NOT_FOUND",
  "message": "Device not found"
}

INTERNAL — Unexpected server-side error.

{
  "success": false,
  "code": "INTERNAL",
  "message": "An internal server error occurred"
}