API reference
Services
A service is one script you sell — its key page, providers, keys and settings all hang off it.
On this page
Almost every other endpoint takes a service_id, so List services is usually the first call you make. Service endpoints need services:read / services:write.
List services
Your services, paginated with limit and offset.
Query parameters
limitnumber1–100Number of services per page (1-100)
Default20offsetnumber | null≥ 0Number of services to skip for pagination
Default0
Response fieldsinside data
idintegerService unique identifier
namestringService name
descriptionstring | nullService description
isPremiumbooleanWhether the service is marked as premium
keylessModebooleanWhether the service can be accessed without issuing a key
keylessWeekdaysarray of integersWeekdays when keyless mode is active (0=Sunday, 1=Monday, ..., 6=Saturday)
slugstring | nullPublic slug used in end-user key claim flows
hwidResetsAllowedintegerHow many times a key for this service can reset its bound hardware ID
keysTotalintegerTotal number of keys for this service
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/services" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": [
{
"id": 1,
"name": "Premium Discord Bot",
"description": "A premium bot with advanced features",
"isPremium": false,
"keylessMode": false,
"keylessWeekdays": [
1,
3,
5
],
"slug": "premium-discord-bot",
"hwidResetsAllowed": 3,
"keysTotal": 0,
"createdAt": "2026-04-30T15:37:00.604Z",
"updatedAt": "2026-04-30T15:37:00.604Z"
}
]
}Get a service
Returns the full configuration for a single service, including premium settings, keyless access settings, public slug, and service-level limits.
Path parameters
idintegerrequired> 0ID of the service
Response fieldsinside data
idintegerService unique identifier
namestringService name
descriptionstring | nullService description
isPremiumbooleanWhether the service is marked as premium
keylessModebooleanWhether the service can be accessed without issuing a key
keylessWeekdaysarray of integersWeekdays when keyless mode is active (0=Sunday, 1=Monday, ..., 6=Saturday)
slugstring | nullPublic slug used in end-user key claim flows
hwidResetsAllowedintegerHow many times a key for this service can reset its bound hardware ID
keysTotalintegerTotal number of keys for this service
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"id": 1,
"name": "Premium Discord Bot",
"description": "A premium bot with advanced features",
"isPremium": false,
"keylessMode": false,
"keylessWeekdays": [
1,
3,
5
],
"slug": "premium-discord-bot",
"hwidResetsAllowed": 3,
"keysTotal": 0,
"createdAt": "2026-04-30T15:37:00.604Z",
"updatedAt": "2026-04-30T15:37:00.604Z"
}
}Create a service
Creates a service. Its public key page lives at /a/<slug> — check a slug first with Check slug availability. Counts toward your plan's service limit.
Bodyapplication/json
namestringrequired2–64 charsHuman-readable service name shown in dashboards and public flows
descriptionstring | null≤ 2000 charsOptional internal description for the service
is_premiumbooleanWhether the service should be treated as a premium offering
Defaultfalsekeyless_modebooleanWhether users can access the service without receiving a generated key
Defaultfalsekeyless_weekdaysarray of integersWeekdays when keyless mode is active. Use 0 for Sunday through 6 for Saturday. Leave empty when keyless_mode is false.
Default[]slugstring | null≤ 64 charsOptional public slug used in end-user claim links and public service pages. Send empty string or null to leave unset.
Response fieldsinside data
idintegerService unique identifier
namestringService name
descriptionstring | nullService description
isPremiumbooleanWhether the service is marked as premium
keylessModebooleanWhether the service can be accessed without issuing a key
keylessWeekdaysarray of integersWeekdays when keyless mode is active (0=Sunday, 1=Monday, ..., 6=Saturday)
slugstring | nullPublic slug used in end-user key claim flows
hwidResetsAllowedintegerHow many times a key for this service can reset its bound hardware ID
keysTotalintegerTotal number of keys for this service
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X POST "https://api.santiauth.com/api/services" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Blox Fruits Hub",
"slug": "blox-fruits-hub",
"is_premium": false
}'{
"success": true,
"data": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Premium Discord Bot",
"description": "A premium bot with advanced features",
"isPremium": false,
"keylessMode": false,
"keylessWeekdays": [],
"slug": "premium-discord-bot",
"hwidResetsAllowed": 3,
"keysTotal": 0,
"createdAt": "2026-04-30T15:37:00.604Z",
"updatedAt": "2026-04-30T15:37:00.604Z"
}
}Update a service
Send only the fields you want to change.
Path parameters
idintegerrequired> 0ID of the service
Bodyapplication/json
namestring2–64 charsUpdated service name shown in dashboards and public flows
descriptionstring | null≤ 2000 charsUpdated internal description for the service
is_premiumbooleanWhether the service should be treated as a premium offering
keyless_modebooleanWhether users can access the service without receiving a generated key
keyless_weekdaysarray of integersWeekdays when keyless mode is active. Use 0 for Sunday through 6 for Saturday. Leave empty when keyless_mode is false.
slugstring | null≤ 64 charsOptional public slug used in end-user claim links and public service pages
hwid_resets_allowedinteger≥ 0How many times a key for this service can reset its bound hardware ID
Response fieldsinside data
idintegerService unique identifier
namestringService name
descriptionstring | nullService description
isPremiumbooleanWhether the service is marked as premium
keylessModebooleanWhether the service can be accessed without issuing a key
keylessWeekdaysarray of integersWeekdays when keyless mode is active (0=Sunday, 1=Monday, ..., 6=Saturday)
slugstring | nullPublic slug used in end-user key claim flows
hwidResetsAllowedintegerHow many times a key for this service can reset its bound hardware ID
keysTotalintegerTotal number of keys for this service
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X PUT "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"keyless_mode": true,
"keyless_weekdays": [
0,
6
]
}'{
"success": true,
"data": {
"id": 1,
"name": "Premium Discord Bot",
"description": "A premium bot with advanced features",
"isPremium": false,
"keylessMode": false,
"keylessWeekdays": [
1,
3,
5
],
"slug": "premium-discord-bot",
"hwidResetsAllowed": 3,
"keysTotal": 0,
"createdAt": "2026-04-30T15:37:00.604Z",
"updatedAt": "2026-04-30T15:37:00.604Z"
}
}Delete a service
Permanently deletes the service. This can't be undone.
Path parameters
idintegerrequired> 0ID of the service
curl -X DELETE "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"Empty body.Check slug availability
Tells whether a key-page slug is free. Pass exclude_id when renaming an existing service so its own slug counts as free.
Query parameters
slugstringrequired≤ 64 charsSlug to test for availability. Empty/whitespace is treated as unset and always reported available.
exclude_idinteger> 0Service ID to exclude from the duplicate check. Use this when editing a service so its current slug is not flagged as taken.
Response fieldsinside data
availablebooleanslugstring
curl "https://api.santiauth.com/api/services/slug/check?slug=premium-discord-bot" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"available": false,
"slug": "string"
}
}List a service's providers
Providers with their checkpoints, in the order they appear on the public key page.
Path parameters
idintegerrequired> 0ID of the service
curl "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/providers" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}Reorder providers
Sets the order of providers on the key page — first ID is shown first. Providers you leave out keep their relative order after the listed ones.
Path parameters
idintegerrequired> 0ID of the service
Bodyapplication/json
provider_idsarray of integersrequired≤ 200 itemsProvider ids of this service in their new order (first = shown first). Providers left out keep their relative order after these.
curl -X PUT "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/providers/order" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider_ids": [
1,
2
]
}'{
"success": true,
"data": null
}Get traffic stats
Key-page traffic and keys for the selected range (days): flow starts, checkpoints passed, validations, keys generated and used, plus a daily series.
Path parameters
idintegerrequired> 0ID of the service
Query parameters
rangestringRange in days, capped by the owner's plan
One of7143090365
Response fieldsinside data
service_idnumberrange_daysnumberflow_startsnumbercheckpoints_passednumberkey_validationsnumberkeys_generatednumberkeys_usednumbertimeSeriesarray of objectsShowHide 6 child attributes
datestringflow_startsnumbercheckpoints_passednumberkey_validationsnumberkeys_generatednumberkeys_usednumber
byExecutorarray of objectsShowHide 3 child attributes
datestringexecutorstringcountnumber
byCountryarray of objectsShowHide 2 child attributes
countrystringcountnumber
byReferrerarray of objectsShowHide 2 child attributes
referrerstringcountnumber
byProviderarray of objectsShowHide 4 child attributes
provider_idnumberprovider_namestringflow_startsnumbercheckpoints_passednumber
byRevenuearray of objectsShowHide 3 child attributes
revenue_idnumberrevenue_namestringcheckpoints_passednumber
lockedarray of stringsmaxRangeDaysnumber
curl "https://api.santiauth.com/api/services/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/stats" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"service_id": 1,
"range_days": 1,
"flow_starts": 1,
"checkpoints_passed": 1,
"key_validations": 1,
"keys_generated": 1,
"keys_used": 1,
"timeSeries": [
{
"date": "string",
"flow_starts": 1,
"checkpoints_passed": 1,
"key_validations": 1,
"keys_generated": 1,
"keys_used": 1
}
],
"byExecutor": [
{
"date": "string",
"executor": "string",
"count": 1
}
],
"byCountry": [
{
"country": "string",
"count": 1
}
],
"byReferrer": [
{
"referrer": "string",
"count": 1
}
],
"byProvider": [
{
"provider_id": 1,
"provider_name": "string",
"flow_starts": 1,
"checkpoints_passed": 1
}
],
"byRevenue": [
{
"revenue_id": 1,
"revenue_name": "string",
"checkpoints_passed": 1
}
],
"locked": [
"string"
],
"maxRangeDays": 1
}
}