API reference
Revenues
Revenues are your ad-network accounts — Linkvertise, Work.ink, LootLabs and others — used as checkpoints on the key page.
On this page
A revenue stores the credentials for one ad network. Attach it to a provider checkpoint and players earn you money on their way to a key. Revenue endpoints need revenues:read / revenues:write.
List revenue types
Supported ad networks and the config fields each one needs. Call it before Create a revenue to build the right config.
Response fieldsinside data
typestringRevenue type identifier
supportedbooleanWhether this revenue type is currently supported
displayNamestringHuman-readable display name
curl "https://api.santiauth.com/api/revenues/types" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": [
{
"type": "linkvertise-dynamic",
"supported": true,
"displayName": "Linkvertise Dynamic"
}
]
}List revenues
Revenues of a service, paginated with limit and offset.
Query parameters
service_idintegerrequired> 0Service the resource belongs to
limitnumber1–100Number of revenues per page (1-100)
Default20offsetnumber | null≥ 0Number of revenues to skip for pagination
Default0
Response fieldsinside data
serviceIdinteger> 0Service the revenue belongs to
configMaskedbooleanTrue when config values are hidden because the caller is below admin
idintegerRevenue unique identifier
namestringRevenue name for identification
typestringRevenue type
configmapRevenue-specific configuration object
isActivebooleanWhether the revenue is active
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/revenues?service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": [
{
"serviceId": 0,
"configMasked": false,
"id": 4,
"name": "My Linkvertise Revenue",
"type": "linkvertise-dynamic",
"config": {
"api_key": "your-api-key",
"user_id": "12345"
},
"isActive": true,
"createdAt": "2026-04-30T15:37:13.595Z",
"updatedAt": "2026-04-30T15:37:13.595Z"
}
]
}Get a revenue
Returns the full stored configuration for a single revenue, including its type, status, and other metadata needed to manage checkpoint behavior.
Path parameters
idintegerrequired> 0ID of the revenue
Response fieldsinside data
serviceIdinteger> 0Service the revenue belongs to
configMaskedbooleanTrue when config values are hidden because the caller is below admin
idintegerRevenue unique identifier
namestringRevenue name for identification
typestringRevenue type
configmapRevenue-specific configuration object
isActivebooleanWhether the revenue is active
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl "https://api.santiauth.com/api/revenues/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"serviceId": 0,
"configMasked": false,
"id": 4,
"name": "My Linkvertise Revenue",
"type": "linkvertise-dynamic",
"config": {
"api_key": "your-api-key",
"user_id": "12345"
},
"isActive": true,
"createdAt": "2026-04-30T15:37:13.595Z",
"updatedAt": "2026-04-30T15:37:13.595Z"
}
}Create a revenue
config depends on type — see List revenue types. A config that doesn't fit the type fails with 400 and lists the bad fields in error.details.
Bodyapplication/json
service_idintegerrequired> 0Service the resource belongs to
namestringrequired1–64 charsRevenue name for identification
typestringrequiredRevenue type. Options: linkvertise-dynamic, linkvertise-token, work.ink, lootlabs, boostellar, shrtfly, cutyio, shortjambo, shrinkearn, linkify, flyinc, linkunlocker, santilink
One oflinkvertise-dynamiclinkvertise-tokenwork.inklootlabsboostellarshrtflycutyioshortjamboshrinkearnlinkifyflyinclinkunlockersantilinkconfigmaprequiredRevenue-specific configuration object. Structure varies by revenue type
Response fieldsinside data
serviceIdinteger> 0Service the revenue belongs to
configMaskedbooleanTrue when config values are hidden because the caller is below admin
idintegerRevenue unique identifier
namestringRevenue name for identification
typestringRevenue type
configmapRevenue-specific configuration object
isActivebooleanWhether the revenue is active
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X POST "https://api.santiauth.com/api/revenues" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service_id": 1,
"name": "Main Linkvertise",
"type": "linkvertise-dynamic",
"config": {
"publisherId": "123456",
"useAntiBypass": false
}
}'{
"success": true,
"data": {
"serviceId": 0,
"configMasked": false,
"id": 4,
"name": "My Linkvertise Revenue",
"type": "linkvertise-dynamic",
"config": {
"api_key": "your-api-key",
"user_id": "12345"
},
"isActive": true,
"createdAt": "2026-04-30T15:37:13.595Z",
"updatedAt": "2026-04-30T15:37:13.595Z"
}
}Update a revenue
Send only the fields you want to change. Set isActive to false to pause it.
Path parameters
idintegerrequired> 0ID of the revenue
Bodyapplication/json
namestring1–64 charsRevenue name for identification
configmapRevenue-specific configuration object. Structure varies by revenue type
isActivebooleanWhether the revenue is active
Response fieldsinside data
serviceIdinteger> 0Service the revenue belongs to
configMaskedbooleanTrue when config values are hidden because the caller is below admin
idintegerRevenue unique identifier
namestringRevenue name for identification
typestringRevenue type
configmapRevenue-specific configuration object
isActivebooleanWhether the revenue is active
createdAtdatetimeCreation timestamp
updatedAtdatetimeLast update timestamp
curl -X PATCH "https://api.santiauth.com/api/revenues/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"isActive": false
}'{
"success": true,
"data": {
"serviceId": 0,
"configMasked": false,
"id": 4,
"name": "My Linkvertise Revenue",
"type": "linkvertise-dynamic",
"config": {
"api_key": "your-api-key",
"user_id": "12345"
},
"isActive": true,
"createdAt": "2026-04-30T15:37:13.595Z",
"updatedAt": "2026-04-30T15:37:13.595Z"
}
}Delete a revenue
Deleting a revenue also removes every provider checkpoint that uses it — those flows lose that step. Set isActive to false instead to pause it. Keys already issued stay valid.
Path parameters
idintegerrequired> 0ID of the revenue
curl -X DELETE "https://api.santiauth.com/api/revenues/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"Empty body.Get revenue stats
Usage of this revenue over the last 7, 14, 30 or 90 days (capped by the owner's plan).
Path parameters
idintegerrequired> 0ID of the revenue
Query parameters
rangenumberrequiredTime range in days for statistics
curl "https://api.santiauth.com/api/revenues/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/stats?range=30" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": null
}