API reference
Providers
Providers are the key flows on your key page — checkpoints players pass and the keys they receive.
On this page
A provider decides what a key from your key page looks like — lifetime, HWID limit, one-time use — and which checkpoints (ad links, Discord join, …) a player must pass to get it. Keys you create through the API also name a provider. Provider endpoints need providers:read / providers:write.
List providers
Providers of a service, in key-page order.
Query parameters
service_idintegerrequired> 0Service the resource belongs to
limitnumber1–100Number of providers per page (1-100)
Default20offsetnumber | null≥ 0Number of providers to skip for pagination
Default0
Response fieldsinside data
serviceIdinteger> 0Service the provider belongs to
priorityintegerOrder on the service's key page; lowest first
idintegerProvider unique identifier
namestringProvider name displayed to users
keyValidMinutesintegerDefault lifetime, in minutes, for keys issued through this provider
oneTimeUsebooleanWhether keys from this provider can only be used once
expiryOnFirstUsebooleanWhether key expiry timer starts on first use instead of creation
hwidLimitintegerMaximum number of hardware IDs that can use keys from this provider
checkpointsarray of integersCheckpoint revenue IDs in execution order
revenue_sequencestringComma-separated checkpoint revenue IDs in execution order
revenue_typestringComma-separated checkpoint revenue types in execution order
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/providers?service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": [
{
"serviceId": 0,
"priority": 1,
"id": 1,
"name": "My Discord Server",
"keyValidMinutes": 1440,
"oneTimeUse": false,
"expiryOnFirstUse": false,
"hwidLimit": 1,
"checkpoints": [
4
],
"revenue_sequence": "990e8400-e29b-41d4-a716-446655440004",
"revenue_type": "discord",
"createdAt": "2026-04-30T15:36:46.951Z",
"updatedAt": "2026-04-30T15:36:46.951Z"
}
]
}Get a provider
One provider with its checkpoints in order.
Path parameters
idintegerrequired> 0ID of the provider
Response fieldsinside data
serviceIdinteger> 0Service the provider belongs to
priorityintegerOrder on the service's key page; lowest first
idintegerProvider unique identifier
namestringProvider name displayed to users
keyValidMinutesintegerDefault lifetime, in minutes, for keys issued through this provider
oneTimeUsebooleanWhether keys from this provider can only be used once
expiryOnFirstUsebooleanWhether key expiry timer starts on first use instead of creation
hwidLimitintegerMaximum number of hardware IDs that can use keys from this provider
checkpointsarray of integersCheckpoint revenue IDs in execution order
revenue_sequencestringComma-separated checkpoint revenue IDs in execution order
revenue_typestringComma-separated checkpoint revenue types in execution order
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"serviceId": 0,
"priority": 1,
"id": 1,
"name": "My Discord Server",
"keyValidMinutes": 1440,
"oneTimeUse": false,
"expiryOnFirstUse": false,
"hwidLimit": 1,
"checkpoints": [
4
],
"revenue_sequence": "990e8400-e29b-41d4-a716-446655440004",
"revenue_type": "discord",
"createdAt": "2026-04-30T15:36:46.951Z",
"updatedAt": "2026-04-30T15:36:46.951Z"
}
}Create a provider
Creates a key flow. key_valid_minutes is the lifetime of keys it issues (1440 = 24 hours). Checkpoints reference revenues for ad-network steps; up to 10 per provider.
Bodyapplication/json
service_idintegerrequired> 0Service the resource belongs to
namestringrequired1–64 charsDisplay name for the provider shown in admin and user flows
key_valid_minutesinteger> 0Default lifetime, in minutes, for keys issued through this provider
Default60one_time_usebooleanWhether keys issued by this provider can be redeemed only once
Defaultfalseexpiry_on_first_usebooleanWhether the key lifetime starts on first use instead of at creation time
Defaultfalsehwid_limitinteger≥ 1Maximum number of hardware IDs that can be bound to a key from this provider
Default1checkpointsarray of objects≤ 10 itemsOrdered checkpoint steps for this provider (max 10)
Default[]ShowHide 2 child attributes
revenue_idintegerrequired> 0Revenue ID used as this checkpoint step
metamapOptional checkpoint-specific configuration passed to the revenue
Response fieldsinside data
serviceIdinteger> 0Service the provider belongs to
priorityintegerOrder on the service's key page; lowest first
idintegerProvider unique identifier
namestringProvider name displayed to users
keyValidMinutesintegerDefault lifetime, in minutes, for keys issued through this provider
oneTimeUsebooleanWhether keys from this provider can only be used once
expiryOnFirstUsebooleanWhether key expiry timer starts on first use instead of creation
hwidLimitintegerMaximum number of hardware IDs that can use keys from this provider
checkpointsarray of integersCheckpoint revenue IDs in execution order
revenue_sequencestringComma-separated checkpoint revenue IDs in execution order
revenue_typestringComma-separated checkpoint revenue types in execution order
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X POST "https://api.santiauth.com/api/providers" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service_id": 1,
"name": "Free 24h key",
"key_valid_minutes": 1440,
"hwid_limit": 1
}'{
"success": true,
"data": {
"serviceId": 0,
"priority": 1,
"id": 1,
"name": "My Discord Server",
"keyValidMinutes": 1440,
"oneTimeUse": false,
"expiryOnFirstUse": false,
"hwidLimit": 1,
"checkpoints": [
4
],
"revenue_sequence": "990e8400-e29b-41d4-a716-446655440004",
"revenue_type": "discord",
"createdAt": "2026-04-30T15:36:46.951Z",
"updatedAt": "2026-04-30T15:36:46.951Z"
}
}Update a provider
Send only the fields you want to change.
Path parameters
idintegerrequired> 0ID of the provider
Bodyapplication/json
namestring1–64 charsUpdated display name for the provider
key_valid_minutesinteger> 0Updated default lifetime, in minutes, for keys issued through this provider
one_time_usebooleanWhether keys issued by this provider can be redeemed only once
expiry_on_first_usebooleanWhether the key lifetime starts on first use instead of at creation time
hwid_limitinteger≥ 1Maximum number of hardware IDs that can be bound to a key from this provider
checkpointsarray of objectsrequired≤ 10 itemsUpdated ordered checkpoint steps for this provider (max 10)
ShowHide 2 child attributes
revenue_idintegerrequired> 0Revenue ID used as this checkpoint step
metamapOptional checkpoint-specific configuration passed to the revenue
Response fieldsinside data
serviceIdinteger> 0Service the provider belongs to
priorityintegerOrder on the service's key page; lowest first
idintegerProvider unique identifier
namestringProvider name displayed to users
keyValidMinutesintegerDefault lifetime, in minutes, for keys issued through this provider
oneTimeUsebooleanWhether keys from this provider can only be used once
expiryOnFirstUsebooleanWhether key expiry timer starts on first use instead of creation
hwidLimitintegerMaximum number of hardware IDs that can use keys from this provider
checkpointsarray of integersCheckpoint revenue IDs in execution order
revenue_sequencestringComma-separated checkpoint revenue IDs in execution order
revenue_typestringComma-separated checkpoint revenue types in execution order
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X PUT "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"key_valid_minutes": 2880
}'{
"success": true,
"data": {
"serviceId": 0,
"priority": 1,
"id": 1,
"name": "My Discord Server",
"keyValidMinutes": 1440,
"oneTimeUse": false,
"expiryOnFirstUse": false,
"hwidLimit": 1,
"checkpoints": [
4
],
"revenue_sequence": "990e8400-e29b-41d4-a716-446655440004",
"revenue_type": "discord",
"createdAt": "2026-04-30T15:36:46.951Z",
"updatedAt": "2026-04-30T15:36:46.951Z"
}
}Delete a provider
Deletes the provider and removes it from the key page.
Path parameters
idintegerrequired> 0ID of the provider
curl -X DELETE "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"Empty body.Copy a provider
Copies settings and checkpoints into another service you can edit — useful when you launch a second script with the same monetization.
Path parameters
idintegerrequired> 0ID of the provider
Bodyapplication/json
target_service_idintegerrequired> 0Service the resource belongs to
Response fieldsinside data
serviceIdinteger> 0Service the provider belongs to
priorityintegerOrder on the service's key page; lowest first
idintegerProvider unique identifier
namestringProvider name displayed to users
keyValidMinutesintegerDefault lifetime, in minutes, for keys issued through this provider
oneTimeUsebooleanWhether keys from this provider can only be used once
expiryOnFirstUsebooleanWhether key expiry timer starts on first use instead of creation
hwidLimitintegerMaximum number of hardware IDs that can use keys from this provider
checkpointsarray of integersCheckpoint revenue IDs in execution order
revenue_sequencestringComma-separated checkpoint revenue IDs in execution order
revenue_typestringComma-separated checkpoint revenue types in execution order
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X POST "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/copy" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_service_id": 1
}'{
"success": true,
"data": {
"serviceId": 0,
"priority": 1,
"id": 1,
"name": "My Discord Server",
"keyValidMinutes": 1440,
"oneTimeUse": false,
"expiryOnFirstUse": false,
"hwidLimit": 1,
"checkpoints": [
4
],
"revenue_sequence": "990e8400-e29b-41d4-a716-446655440004",
"revenue_type": "discord",
"createdAt": "2026-04-30T15:36:46.951Z",
"updatedAt": "2026-04-30T15:36:46.951Z"
}
}Get provider stats
Detailed metrics for one provider over 7, 14, 30 or 90 days (capped by the owner's plan).
Path parameters
idintegerrequired> 0ID of the provider
Query parameters
rangenumberrequiredTime range in days for statistics
curl "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/stats?range=7" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}Get stats for all providers
The same metrics across all providers of a service.
Query parameters
rangenumberrequiredTime range in days for statistics
service_idintegerrequired> 0Service the resource belongs to
curl "https://api.santiauth.com/api/providers/stats?range=7&service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}Get checkpoint stats
Completion and drop-off for one checkpoint — find the step where players give up.
Path parameters
idintegerrequired> 0ID of the provider
checkpointIdintegerrequired> 0ID of the checkpoint
Query parameters
rangenumberrequiredTime range in days for statistics
curl "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/checkpoints/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/stats?range=7" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}Get stats for all checkpoints
Checkpoint metrics across all providers of a service.
Query parameters
rangenumberrequiredTime range in days for statistics
service_idintegerrequired> 0Service the resource belongs to
curl "https://api.santiauth.com/api/providers/checkpoints/stats?range=7&service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}