Oracle
Generate Keys
Generate a new Oracle key tied to a specific service. Keys authenticate requests when invoking any Oracle script under that service via API.
Requirements
- An active membership
- An existing Oracle service owned by your account
Endpoint
POST /api/oracle/keys/generateAuthentication
Authenticate using either a session cookie (web) or an API key header:
x-api-key: <your-api-key>Request Body
{
"serviceId": "your-service-id",
"name": "My Key",
"expiresAt": "2026-12-31T23:59:59Z"
}| Field | Type | Required | Description |
|---|---|---|---|
| serviceId | string | Yes | The ID of the Oracle service to bind this key to. The key will work for all scripts under that service. |
| name | string | No | A label for the key (3–32 characters). Omit or pass null for no name. |
| expiresAt | string | No | ISO 8601 datetime. If omitted, the key never expires. Must be a future date. |
| maxHwids | number | No | Maximum number of HWIDs this key can be locked to (1–10). Omit for unlimited. |
| maxUids | number | No | Maximum number of Roblox UIDs this key can be locked to (1–10). Omit for unlimited. |
| premium | boolean | No | Mark this key as premium. Defaults to false. |
Response
On success, returns 200 OK:
{
"key": "a3f9c2e1b4d7..."
}| Field | Type | Description |
|---|---|---|
| key | string | The generated key (64-character hex string). |
Error Responses
| Status | Error | Cause |
|---|---|---|
| 400 | serviceId is required. | serviceId was missing or not a string. |
| 400 | Key name must be between 3 and 32 characters. | name was provided but is outside the allowed length range. |
| 400 | Invalid expiry date. | expiresAt could not be parsed as a valid date. |
| 400 | Expiry date must be in the future. | expiresAt is in the past. |
| 400 | maxHwids must be 1–10 or null for unlimited. | maxHwids was out of range. |
| 400 | maxUids must be 1–10 or null for unlimited. | maxUids was out of range. |
| 401 | Not authenticated. | No session or x-api-key header provided. |
| 401 | Invalid API key. | The provided x-api-key does not match any account. |
| 403 | You are banned. | Your account has been banned. |
| 403 | An active membership is required to use Oracle. | Your membership is expired or not active. |
| 404 | Service not found. | No service with that serviceId exists under your account. |
| 429 | Too many requests. Slow down. | Exceeded 20 key generations per minute. |
Example
curl -X POST https://soteria.rip/api/oracle/keys/generate \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"serviceId": "my-service-id",
"name": "My Key",
"expiresAt": "2027-01-01T00:00:00Z"
}'
