Skip to main content

Account endpoints

info

these are endpoints relating to projects


Getting project info

GET /projects/:project_id

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{
"success": true,
"project": {
"id": "PROJECT_ID",
"name": "PROJECT_NAME",
"fingerprint_reset_cooldown": 86400000,
"allow_fingerprint_resets": true,
"delete_expired_users": false,
"execution_webhook": "WEBHOOK",
"information_webhook": "WEBHOOK",
"blacklist_webhook": "WEBHOOK",
"total_executions": 0
}
}

Editing a project

POST /projects/:project_id/edit

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDescription
nameStringName for the project
fingerprint_reset_cooldownNumberFingerprint reset cooldown in ms
allow_fingerprint_resetsBooleanAllow users to reset there own fingerprint, does not effect force reset
delete_expired_usersBooleanDelete expired users after 15 minutes
execution_webhookStringWebhook used for logging executions
information_webhookStringWebhook used for logging information like fingerprint resets and key generation
blacklist_webhookStringWebhook used for logging blacklists

Response

{
"success": true,
"project": {
"id": "PROJECT_ID",
"name": "PROJECT_NAME",
"fingerprint_reset_cooldown": 86400000,
"allow_fingerprint_resets": true,
"delete_expired_users": false,
"execution_webhook": "WEBHOOK",
"information_webhook": "WEBHOOK",
"blacklist_webhook": "WEBHOOK",
"total_executions": 0
}
}

Deleting a project

POST /projects/:project_id/remove

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{ "success": true }

Getting executions

GET /projects/:project_id/executions

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{
"success": true,
"executions": {
"total": { "01/01": 0 },
"SCRIPT_NAME - SCRIPT_ID": { "01/01": 0 }
}
}

Getting executors

GET /projects/:project_id/executors

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{
"success": true,
"executors": { "NAME": 0 },
"percentages": { "NAME": 100 }
}

Getting scripts

GET /projects/:project_id/scripts

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{
"success": true,
"scripts": [{
"id": "SCRIPT_ID",
"name": "SCRIPT_NAME",
"free_for_all": false,
"use_heartbeat": true,
"kick_outdated": false,
"enabled": true,
"total_executions": 0
}]
}

Creating a new script

POST /projects/:project_id/scripts/new

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDefaultDescription
nameStringName for the script
free_for_allBooleanFalseAllow users to execute without a key
use_heartbeatBooleanTrueContinue to check users after initial verification
kick_outdatedBooleanFalseKick users using old version of the script
scriptStringthe source code of the script

Response

{
"success": true,
"script_id": "SCRIPT_ID"
}

Getting users

GET /projects/:project_id/users

Parameters

NameTypeDescription
project_idStringThe projects id

Queries

NameTypeNullableDescription
fromNumberStart index for list
limitNumberAmount of users to return

Response

{
"success": true,
"users": [{
"key": "USER_KEY",
"discord_id": "DISCORD_ID",
"fingerprint_assigned": true,
"executor": "EXECUTOR",
"executions": 0,
"key_expires": 1770624500000,
"last_reset": 1770538100000,
"total_fingerprint_resets": 0,
"note": "NOTE",
"blacklisted": false,
"blacklist_reason": null,
"blacklist_expires": null,
"luaauth_fingerprint": "⬛⬛⬛⬛⬛⬛ -> ip\n⬛⬛⬛⬛⬛⬛ -> fingerprint\n⬛⬛⬛⬛⬛⬛ -> executor"
}]
}

Filtering users

GET /projects/:project_id/users/filter

Parameters

NameTypeDescription
project_idStringThe projects id

Queries

NameTypeNullableDescription
fromNumberStart index for list
limitNumberAmount of users to return
keyNumberKey user must have
fingerprint_assignedBooleanReturn users with / without a fingerprint assigned
key_expiresBooleanReturn users that keys can / cant expire
discord_idStringDiscord user must have
executorStringExecutor users must have
noteStringNote users must have
blacklistedBooleanReturn users that are / arent blacklisted
blacklist_reasonBooleanBlacklist reason users must have
blacklist_expiresBooleanReturn users that blacklist does / doesnt expire
searchStringReturns users who key / discord / note / executor / blacklist reason includes this string

Response

{
"success": true,
"users": [{
"key": "USER_KEY",
"discord_id": "DISCORD_ID",
"fingerprint_assigned": true,
"executor": "EXECUTOR",
"executions": 0,
"key_expires": 1770624500000,
"last_reset": 1770538100000,
"total_fingerprint_resets": 0,
"note": "NOTE",
"blacklisted": false,
"blacklist_reason": null,
"blacklist_expires": null,
"luaauth_fingerprint": "⬛⬛⬛⬛⬛⬛ -> ip\n⬛⬛⬛⬛⬛⬛ -> fingerprint\n⬛⬛⬛⬛⬛⬛ -> executor"
}]
}

Importing users

POST /projects/:project_id/users/import

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDescription
usersJson listJson list of user jsons to import

User json

structure of each user your importing

NamesTypesNullableDefaultDescription
discord_id OR discordStringNullDiscord id of the user
fingerprint OR identifier OR hwidStringNullFingerprint for the user
auth_expire OR key_expiresNumberNullUnix timestamp that key expires in seconds or milliseconds
noteStringNullNote for the user
executorStringNullExecutor the user uses
blacklistedBooleanFalseIs user blacklisted
blacklist_reasonStringNullReason user is blacklisted
blacklist_expiresNumberNullUnix timestamp that blacklist expires in seconds or milliseconds

Response

{
"success": true,
"imported": 0,
"skipped": 0
}

Exporting users

POST /projects/:project_id/users/export

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeOptionsNullableDescription
typeEnum'text' OR 'json'File type to export to, also changes what is exported

Response

{
"success": true,
"exported": "[{ \"key\": \"USER_KEY\", \"discord_id\": \"DISCORD_ID\", \"executor\": \"EXECUTOR\", \"key_expires\": null, \"note\": \"NOTE\", \"blacklisted\": false, \"blacklist_reason\": null, \"blacklist_expires\": null }]"
}

Creating a new user

POST /projects/:project_id/users/new

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDefaultDescription
discord_idStringNullDiscord id of the user
key_expiresNumberNullUnix timestamp in ms of when key expires
noteNumberNullNote for user

Response

{
"success": true,
"user_key": "USER_KEY"
}

Mass generating users

POST /projects/:project_id/users/generate

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDefaultDescription
keys_expireNumberNullUnix timestamp in ms of when the keys expire
noteNumberNullNotes for users
amountNumberAmount of users to generate

Response

{
"success": true,
"user_keys": [ "USER_KEY" ]
}

Resetting every users fingerprint

POST /projects/:project_id/users/resetall

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{ "success": true }

Delete every unused user

POST /projects/:project_id/users/purge

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{ "success": true }

Delete every user

POST /projects/:project_id/users/clear

Parameters

NameTypeDescription
project_idStringThe projects id

Response

{ "success": true }

Compensate every user

POST /projects/:project_id/users/compensate

Parameters

NameTypeDescription
project_idStringThe projects id

Body

NameTypeNullableDescription
durationNumberMs to add to key
compensate_expiredBooleanCompensate users that keys have already expired

Response

{ "success": true }