Fini Anti-Cheat and Admin Tools API Documentation

Public API for querying logs, bans, webhooks, etc.
BaseURL: https:/fini.dev/api/v1

Access

All methods require authentication. Any of the following can be used for authentication.
  1. HTTP Request Header: X-API-Key
  2. GET Query key: apikey
  3. POST JSON Body: apikey

Apollo

Bans

Identities

Licenses

Logs

Webhooks


Apollo

post /exec
execute sqf-code (execPost)
Execute SQF-code on your game server

Request body

Body Parameter — Script to execute and IP-address of the connected game server

Return type

Example data

Content-Type: application/json
{
  "apollo_token" : "apollo_token",
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if the script execution was successfull and the token for getting return value ApolloToken

400

Invalid input parameters, script is too long (over 32k) or IP-address is invalid GenericError

403

Missing permission GenericError

post /return
get return value of script execution (returnPost)
Gets the returned value from the code exeucted with /exec endpoint

Request body

Body Parameter — Script to execute and IP-address of the connected game server

Return type

Example data

Content-Type: application/json
{
  "apollo_token" : "apollo_token",
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if the script execution was successfull and the token for getting return value ApolloToken

400

Invalid input parameters, script is too long (over 32k) or IP-address is invalid GenericError

403

Missing permission GenericError

Bans

get /ban
gets an individual ban (banGet)
Returns details about a single ban by UID

Query parameters

uid (required)
Query Parameter — SteamUID of the ban
third
Query Parameter — Show which ban lists the user is on

Return type

Example data

Content-Type: application/json
{
  "banned_fini" : true,
  "success" : true,
  "banned_infi" : false,
  "banned_ws" : false,
  "banned" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

search results matching criteria BanDetails

400

Missing input field

403

Missing permission

put /ban
add a new global ban (banPut)
Adds a new global ban to the global ban list

Request body

Body Parameter — Ban details

Return type

Example data

Content-Type: application/json
{
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

search results matching criteria GenericResponse

400

Missing input field GenericError

403

Missing permission GenericError

get /bans
gets all bans (bansGet)
Gets a list of all global bans

Query parameters

Return type

Example data

Content-Type: application/json
[ {
  "severity" : "high",
  "uid" : "76561123456789012",
  "type" : "fini"
}, {
  "severity" : "high",
  "uid" : "76561123456789012",
  "type" : "fini"
} ]

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

list of all fini and infistar bans

403

Missing permission

Identities

post /match
query player identity information (matchPost)
Query information about player identities and their alt accounts

Request body

Body Parameter — Identifiers to match, matching is OR-gated

Return type

Example data

Content-Type: application/json
{
  "success" : true,
  "matches" : [ {
    "names" : [ "names", "names" ],
    "ip_addresses" : [ "ip_addresses", "ip_addresses" ],
    "global_banned" : true,
    "name" : "name",
    "id" : "id",
    "steam_uid" : "steam_uid"
  }, {
    "names" : [ "names", "names" ],
    "ip_addresses" : [ "ip_addresses", "ip_addresses" ],
    "global_banned" : true,
    "name" : "name",
    "id" : "id",
    "steam_uid" : "steam_uid"
  } ]
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if license keys were queried successfully MatchList

403

Missing permission GenericError

Licenses

get /licenses
show license information (licensesGet)
Lists all licenses linked to the APIKEY's owner account

Return type

Example data

Content-Type: application/json
{
  "webhooks" : [ {
    "start_time" : 0.80082819046101150206595775671303272247314453125,
    "owner_name" : "owner_name",
    "end_time" : 6.02745618307040320615897144307382404804229736328125,
    "product_name" : "product_name",
    "license_key" : "license_key"
  }, {
    "start_time" : 0.80082819046101150206595775671303272247314453125,
    "owner_name" : "owner_name",
    "end_time" : 6.02745618307040320615897144307382404804229736328125,
    "product_name" : "product_name",
    "license_key" : "license_key"
  } ],
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if license keys were queried successfully LicenseList

403

Missing permission GenericError

Logs

get /logs
search logs (logsGet)
Search logs with a string search term

Query parameters

search
Query Parameter — Search term
global
Query Parameter — Search globally

Return type

Example data

Content-Type: application/json
{
  "webhooks" : [ {
    "file" : "file",
    "time" : 0.80082819046101150206595775671303272247314453125,
    "text" : "text"
  }, {
    "file" : "file",
    "time" : 0.80082819046101150206595775671303272247314453125,
    "text" : "text"
  } ],
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success querying logs succeeded LogList

400

Invalid input parameters GenericError

403

Missing permission GenericError

Webhooks

delete /webhook
delete webhook (webhookDelete)
Deletes the webhook with the given ID

Query parameters

webhook_id
Query Parameter — ID of the webhook

Return type

Example data

Content-Type: application/json
{
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if the webhook was found and deleted GenericResponse

400

Invalid input parameters GenericError

403

Missing permission GenericError

put /webhook
add webhook (webhookPut)
Add a webhook to trigger when logs are created for certain files

Request body

Body Parameter — New webhook's details

Return type

Example data

Content-Type: application/json
{
  "webhook_id" : 0.80082819046101150206595775671303272247314453125,
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success if the webhook was added WebhookAdded

400

Invalid input parameters GenericError

403

Missing permission GenericError

get /webhooks
list webhooks (webhooksGet)
Get a list of all webhooks added to your server

Return type

Example data

Content-Type: application/json
{
  "webhooks" : [ {
    "color" : 6.02745618307040320615897144307382404804229736328125,
    "webhook_id" : 0.80082819046101150206595775671303272247314453125,
    "file_name" : "file_name",
    "name" : "name",
    "url" : "url",
    "formatting" : "formatting"
  }, {
    "color" : 6.02745618307040320615897144307382404804229736328125,
    "webhook_id" : 0.80082819046101150206595775671303272247314453125,
    "file_name" : "file_name",
    "name" : "name",
    "url" : "url",
    "formatting" : "formatting"
  } ],
  "success" : true
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.
  • application/json

Responses

200

Success the webhook query succeeded WebhookList

403

Missing permission GenericError

Models

[ Jump to Methods ]

Table of Contents

  1. AddBan -
  2. AddWebhook -
  3. ApolloToken -
  4. Ban -
  5. BanDetails -
  6. ExecApollo -
  7. GenericError -
  8. GenericResponse -
  9. Identifier -
  10. IdentifierList -
  11. License -
  12. LicenseList -
  13. Log -
  14. LogList -
  15. Match -
  16. MatchList -
  17. ReturnApollo -
  18. Webhook -
  19. WebhookAdded -
  20. WebhookList -

AddBan -

uid
example: 76561123456789012
reason
example: Boi was cheating, *example log*
severity
Enum:
request
low
med
high
example: high

AddWebhook -

name
String name of the webhook
file
String filename for the hook to be trigger on
url
String url of the webhook
formatting
String formatting of the webhook title
color
String colour of the webhook embed (decimal format)

ApolloToken -

success
example: true
apollo_token

Ban -

uid
example: 76561123456789012
type
Enum:
fini
infi
ws
kfc
example: fini
severity
example: high

BanDetails -

success
example: true
banned
example: true
banned_fini
example: true
banned_infi
example: false
banned_ws
example: false

ExecApollo -

script
example: diag_log 'hello world';
ip_addr
example: 127.0.0.1

GenericError -

success
example: false
code
example: 403.0
message
example: You do not have permission to use this

GenericResponse -

success
example: true

Identifier -

type
String Type to match, name is in-game name, browser is the browser cookie and user is the player's ID, alt accounts are only checked when querying with user/player's ID
Enum:
steamid
ip
name
browser
user
value
example: 127.0.0.1

License -

start_time
end_time
license_key
product_name
owner_name

LicenseList -

success
example: true
licenses

Log -

time
file
text

LogList -

success
example: true
logs

Match -

id
String Player's ID, used for querying with 'user' input parameter
steam_uid
global_banned
name
String This is the player's newest in-game name
ip_addresses
names

MatchList -

success
example: true
matches

ReturnApollo -

apollo_token
String token returned from /exec endpoint

Webhook -

webhook_id
name
url
formatting
color
file_name

WebhookAdded -

success
example: true
webhook_id

WebhookList -

success
example: true
webhooks