API reference
Folders & templates
Organize keys into folders, and control what generated keys look like with key templates.
On this page
Folders group keys inside a service — by store, reseller or campaign. Pass folder_id when you create keys or filter List keys by it. Folder endpoints need folders:read / folders:write.
Key templates set the format of generated keys: prefix, number and length of segments, separator and character set. They need key-templates:read / key-templates:write.
Folders
Create a folder
Creates an empty folder in a service.
Bodyapplication/json
service_idintegerrequired> 0Service the resource belongs to
namestringrequired1–32 charsFolder name for organizing keys
Response fieldsinside data
idintegerFolder unique identifier
serviceIdinteger> 0Service the folder belongs to
namestringFolder name for organizing keys
createdAtstringCreation timestamp (ISO 8601)
curl -X POST "https://api.santiauth.com/api/keys/folders" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service_id": 1,
"name": "Production Keys"
}'{
"success": true,
"data": {
"id": 123,
"name": "Production Keys",
"createdAt": "2026-04-30T15:37:35.645Z"
}
}List folders
Folders of a service, paginated with limit and offset.
Query parameters
service_idintegerrequired> 0Service the resource belongs to
limitnumber1–100Maximum number of folders to return (1-100)
Default20offsetnumber | null≥ 0Number of folders to skip for pagination
Default0
Response fieldsinside data
idintegerFolder unique identifier
serviceIdinteger> 0Service the folder belongs to
namestringFolder name for organizing keys
createdAtstringCreation timestamp (ISO 8601)
curl "https://api.santiauth.com/api/keys/folders?service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": [
{
"id": 123,
"name": "Production Keys",
"createdAt": "2026-04-30T15:37:35.645Z"
},
{
"id": 124,
"name": "Staging Keys",
"createdAt": "2026-04-30T16:12:18.321Z"
}
]
}Get a folder
Returns a single folder by ID for the authenticated owner. Use this when loading folder details, verifying access before reassigning resources, or confirming the current folder name in the UI.
Path parameters
idintegerrequired> 0Folder ID
Response fieldsinside data
idintegerFolder unique identifier
serviceIdinteger> 0Service the folder belongs to
namestringFolder name for organizing keys
createdAtstringCreation timestamp (ISO 8601)
curl "https://api.santiauth.com/api/keys/folders/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"id": 123,
"name": "Production Keys",
"createdAt": "2026-04-30T15:37:35.645Z"
}
}Rename a folder
Renames a folder.
Path parameters
idintegerrequired> 0Folder ID
Bodyapplication/json
namestring1–32 charsUpdated folder name
Response fieldsinside data
idintegerFolder unique identifier
serviceIdinteger> 0Service the folder belongs to
namestringFolder name for organizing keys
createdAtstringCreation timestamp (ISO 8601)
curl -X PUT "https://api.santiauth.com/api/keys/folders/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Staging Keys"
}'{
"success": true,
"data": {
"id": 123,
"name": "Staging Keys",
"createdAt": "2026-04-30T15:37:35.645Z"
}
}Delete a folder
Deletes the folder. Its keys are kept and simply become unfiled.
Path parameters
idintegerrequired> 0Folder ID
curl -X DELETE "https://api.santiauth.com/api/keys/folders/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"Empty body.Key templates
Create a template
Defines a key format for a service. With the body below, keys look like PREM-7K2QX-M4Z8R-P1N6W-C3T9B.
curl -X POST "https://api.santiauth.com/api/key-templates" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"service_id": 1,
"name": "Premium",
"prefix": "PREM",
"segments": 4,
"segmentLength": 5,
"separator": "-",
"charset": "alphanum"
}'{
"success": true,
"data": {
"id": 1,
"serviceId": 1,
"name": "Premium",
"prefix": "PREM",
"segments": 4,
"segmentLength": 5,
"separator": "-",
"charset": "alphanum",
"validationRegex": null,
"createdAt": "2026-09-30T12:00:00.000Z"
}
}| Field | Type | Notes |
|---|---|---|
service_id | integer, required | Service the template belongs to. |
name | string, required | 1–128 chars. |
prefix | string | Up to 32 chars, prepended to every key. |
segments | integer | 1–10. Default 3. |
segmentLength | integer | 1–16 characters per segment. Default 4. |
separator | string | Up to 4 chars between segments. Default -. |
charset | enum | alphanum (A–Z 0–9), alpha, hex, numeric. Default alphanum. |
validationRegex | string | Optional regex every generated key must match. |
List templates
Templates of a service.
curl "https://api.santiauth.com/api/key-templates?service_id=1" \
-H "x-api-key: $SANTIAUTH_API_KEY"Preview a template
Generates one sample key with the template without saving anything — handy to check a format before you use it.
curl "https://api.santiauth.com/api/key-templates/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b/preview" \
-H "x-api-key: $SANTIAUTH_API_KEY"{
"success": true,
"data": {
"preview": "PREM-7K2QX-M4Z8R-P1N6W-C3T9B"
}
}Update a template
Send only the fields to change; they take the same values as on create. Keys that already exist keep their format.
curl -X PATCH "https://api.santiauth.com/api/key-templates/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prefix": "VIP"
}'Delete a template
Deletes the template. Keys generated with it are not affected.
curl -X DELETE "https://api.santiauth.com/api/key-templates/3f2b8c1e-4d5a-4e6f-9a7b-8c9d0e1f2a3b" \
-H "x-api-key: $SANTIAUTH_API_KEY"