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

GET/api/providersproviders:read

Providers of a service, in key-page order.

Query parameters

  • service_idintegerrequired> 0

    Service the resource belongs to

  • limitnumber1–100

    Number of providers per page (1-100)

    Default 20
  • offsetnumber | null≥ 0

    Number of providers to skip for pagination

    Default 0
Response fieldsinside data
  • serviceIdinteger> 0

    Service the provider belongs to

  • priorityinteger

    Order on the service's key page; lowest first

  • idinteger

    Provider unique identifier

  • namestring

    Provider name displayed to users

  • keyValidMinutesinteger

    Default lifetime, in minutes, for keys issued through this provider

  • oneTimeUseboolean

    Whether keys from this provider can only be used once

  • expiryOnFirstUseboolean

    Whether key expiry timer starts on first use instead of creation

  • hwidLimitinteger

    Maximum number of hardware IDs that can use keys from this provider

  • checkpointsarray of integers

    Checkpoint revenue IDs in execution order

  • revenue_sequencestring

    Comma-separated checkpoint revenue IDs in execution order

  • revenue_typestring

    Comma-separated checkpoint revenue types in execution order

  • createdAtdatetime

    Creation timestamp

  • updatedAtdatetime

    Last update timestamp

curl "https://api.santiauth.com/api/providers?service_id=1" \
  -H "x-api-key: $SANTIAUTH_API_KEY"
200 OK
{
  "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

GET/api/providers/{id}providers:read

One provider with its checkpoints in order.

Path parameters

  • idintegerrequired> 0

    ID of the provider

Response fieldsinside data
  • serviceIdinteger> 0

    Service the provider belongs to

  • priorityinteger

    Order on the service's key page; lowest first

  • idinteger

    Provider unique identifier

  • namestring

    Provider name displayed to users

  • keyValidMinutesinteger

    Default lifetime, in minutes, for keys issued through this provider

  • oneTimeUseboolean

    Whether keys from this provider can only be used once

  • expiryOnFirstUseboolean

    Whether key expiry timer starts on first use instead of creation

  • hwidLimitinteger

    Maximum number of hardware IDs that can use keys from this provider

  • checkpointsarray of integers

    Checkpoint revenue IDs in execution order

  • revenue_sequencestring

    Comma-separated checkpoint revenue IDs in execution order

  • revenue_typestring

    Comma-separated checkpoint revenue types in execution order

  • createdAtdatetime

    Creation timestamp

  • updatedAtdatetime

    Last update timestamp

curl "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
  -H "x-api-key: $SANTIAUTH_API_KEY"
200 OK
{
  "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

POST/api/providersproviders:write

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> 0

    Service the resource belongs to

  • namestringrequired1–64 chars

    Display name for the provider shown in admin and user flows

  • key_valid_minutesinteger> 0

    Default lifetime, in minutes, for keys issued through this provider

    Default 60
  • one_time_useboolean

    Whether keys issued by this provider can be redeemed only once

    Default false
  • expiry_on_first_useboolean

    Whether the key lifetime starts on first use instead of at creation time

    Default false
  • hwid_limitinteger≥ 1

    Maximum number of hardware IDs that can be bound to a key from this provider

    Default 1
  • checkpointsarray of objects≤ 10 items

    Ordered checkpoint steps for this provider (max 10)

    Default []
    Show 2 child attributes
    • revenue_idintegerrequired> 0

      Revenue ID used as this checkpoint step

    • metamap

      Optional checkpoint-specific configuration passed to the revenue

Response fieldsinside data
  • serviceIdinteger> 0

    Service the provider belongs to

  • priorityinteger

    Order on the service's key page; lowest first

  • idinteger

    Provider unique identifier

  • namestring

    Provider name displayed to users

  • keyValidMinutesinteger

    Default lifetime, in minutes, for keys issued through this provider

  • oneTimeUseboolean

    Whether keys from this provider can only be used once

  • expiryOnFirstUseboolean

    Whether key expiry timer starts on first use instead of creation

  • hwidLimitinteger

    Maximum number of hardware IDs that can use keys from this provider

  • checkpointsarray of integers

    Checkpoint revenue IDs in execution order

  • revenue_sequencestring

    Comma-separated checkpoint revenue IDs in execution order

  • revenue_typestring

    Comma-separated checkpoint revenue types in execution order

  • createdAtdatetime

    Creation timestamp

  • updatedAtdatetime

    Last 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
}'
201 Created
{
  "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

PUT/api/providers/{id}providers:write

Send only the fields you want to change.

Path parameters

  • idintegerrequired> 0

    ID of the provider

Bodyapplication/json

  • namestring1–64 chars

    Updated display name for the provider

  • key_valid_minutesinteger> 0

    Updated default lifetime, in minutes, for keys issued through this provider

  • one_time_useboolean

    Whether keys issued by this provider can be redeemed only once

  • expiry_on_first_useboolean

    Whether the key lifetime starts on first use instead of at creation time

  • hwid_limitinteger≥ 1

    Maximum number of hardware IDs that can be bound to a key from this provider

  • checkpointsarray of objectsrequired≤ 10 items

    Updated ordered checkpoint steps for this provider (max 10)

    Show 2 child attributes
    • revenue_idintegerrequired> 0

      Revenue ID used as this checkpoint step

    • metamap

      Optional checkpoint-specific configuration passed to the revenue

Response fieldsinside data
  • serviceIdinteger> 0

    Service the provider belongs to

  • priorityinteger

    Order on the service's key page; lowest first

  • idinteger

    Provider unique identifier

  • namestring

    Provider name displayed to users

  • keyValidMinutesinteger

    Default lifetime, in minutes, for keys issued through this provider

  • oneTimeUseboolean

    Whether keys from this provider can only be used once

  • expiryOnFirstUseboolean

    Whether key expiry timer starts on first use instead of creation

  • hwidLimitinteger

    Maximum number of hardware IDs that can use keys from this provider

  • checkpointsarray of integers

    Checkpoint revenue IDs in execution order

  • revenue_sequencestring

    Comma-separated checkpoint revenue IDs in execution order

  • revenue_typestring

    Comma-separated checkpoint revenue types in execution order

  • createdAtdatetime

    Creation timestamp

  • updatedAtdatetime

    Last 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
}'
200 OK
{
  "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

DELETE/api/providers/{id}providers:write

Deletes the provider and removes it from the key page.

Path parameters

  • idintegerrequired> 0

    ID of the provider

curl -X DELETE "https://api.santiauth.com/api/providers/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
  -H "x-api-key: $SANTIAUTH_API_KEY"
204 No Content
Empty body.

Copy a provider

POST/api/providers/{id}/copyproviders:write

Copies settings and checkpoints into another service you can edit — useful when you launch a second script with the same monetization.

Path parameters

  • idintegerrequired> 0

    ID of the provider

Bodyapplication/json

  • target_service_idintegerrequired> 0

    Service the resource belongs to

Response fieldsinside data
  • serviceIdinteger> 0

    Service the provider belongs to

  • priorityinteger

    Order on the service's key page; lowest first

  • idinteger

    Provider unique identifier

  • namestring

    Provider name displayed to users

  • keyValidMinutesinteger

    Default lifetime, in minutes, for keys issued through this provider

  • oneTimeUseboolean

    Whether keys from this provider can only be used once

  • expiryOnFirstUseboolean

    Whether key expiry timer starts on first use instead of creation

  • hwidLimitinteger

    Maximum number of hardware IDs that can use keys from this provider

  • checkpointsarray of integers

    Checkpoint revenue IDs in execution order

  • revenue_sequencestring

    Comma-separated checkpoint revenue IDs in execution order

  • revenue_typestring

    Comma-separated checkpoint revenue types in execution order

  • createdAtdatetime

    Creation timestamp

  • updatedAtdatetime

    Last 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
}'
201 Created
{
  "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

GET/api/providers/{id}/statsproviders:read

Detailed metrics for one provider over 7, 14, 30 or 90 days (capped by the owner's plan).

Path parameters

  • idintegerrequired> 0

    ID of the provider

Query parameters

  • rangenumberrequired

    Time 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"
200 OK
{
  "success": true,
  "data": null
}

Get stats for all providers

GET/api/providers/statsproviders:read

The same metrics across all providers of a service.

Query parameters

  • rangenumberrequired

    Time range in days for statistics

  • service_idintegerrequired> 0

    Service the resource belongs to

curl "https://api.santiauth.com/api/providers/stats?range=7&service_id=1" \
  -H "x-api-key: $SANTIAUTH_API_KEY"
200 OK
{
  "success": true,
  "data": null
}

Get checkpoint stats

GET/api/providers/{id}/checkpoints/{checkpointId}/statsproviders:read

Completion and drop-off for one checkpoint — find the step where players give up.

Path parameters

  • idintegerrequired> 0

    ID of the provider

  • checkpointIdintegerrequired> 0

    ID of the checkpoint

Query parameters

  • rangenumberrequired

    Time 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"
200 OK
{
  "success": true,
  "data": null
}

Get stats for all checkpoints

GET/api/providers/checkpoints/statsproviders:read

Checkpoint metrics across all providers of a service.

Query parameters

  • rangenumberrequired

    Time range in days for statistics

  • service_idintegerrequired> 0

    Service 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"
200 OK
{
  "success": true,
  "data": null
}