Authentication
All Scriptix API requests require authentication using Bearer tokens.
Authentication Methods
Scriptix supports two authentication methods:
- JWT Session Tokens - For web application access (user login)
- API Access Tokens - For programmatic API access (batch processing, integrations)
User Authentication (JWT Tokens)
Login Flow
Standard Login:
POST https://api.scriptix.io/api/v3/auth/login?login_type=token
Content-Type: application/x-www-form-urlencoded
username=user@example.com&password=yourpassword&remember_me=true
Response:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"login": true,
"mfa_required": false,
"session_id": "abc123",
"signature": "xyz789"
}
Multi-Factor Authentication (MFA)
If MFA is enabled, login requires a second step:
POST https://api.scriptix.io/api/v3/auth/login/mfa?login_type=token
Content-Type: application/x-www-form-urlencoded
username=user@example.com&password=yourpassword&totp_code=123456
Or with backup code:
username=user@example.com&password=yourpassword&backup_code=ABCD-EFGH-IJKL
Microsoft SSO
GET https://api.scriptix.io/api/v3/auth/login/microsoft?redirect_uri=https://yourapp.com/callback
The token is returned as a URL parameter in the redirect.
API Access Tokens
Create API Token
For programmatic access (batch processing, integrations), create an API token:
POST https://api.scriptix.io/api/v3/tokens
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"name": "Batch Processing Token",
"type": "batch"
}
Response:
{
"id": 123,
"name": "Batch Processing Token",
"key": "token_abc123def456...",
"type": "batch",
"created_at": "2025-01-17T10:00:00Z"
}
⚠️ The key value is only shown once. Store it securely immediately.
List API Tokens
GET https://api.scriptix.io/api/v3/tokens?offset=0&limit=25
Authorization: Bearer YOUR_JWT_TOKEN
Delete API Token
DELETE https://api.scriptix.io/api/v3/tokens/{tokenId}
Authorization: Bearer YOUR_JWT_TOKEN
Using Bearer Tokens
Authorization Header
Include your token in the Authorization header with Bearer scheme:
Authorization: Bearer YOUR_TOKEN
Examples
cURL
curl https://api.scriptix.io/api/v3/account/me \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Python
import requests
headers = {
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
response = requests.get(
"https://api.scriptix.io/api/v3/account/me",
headers=headers
)
JavaScript
const headers = {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
};
fetch('https://api.scriptix.io/api/v3/account/me', { headers })
.then(response => response.json())
.then(data => console.log(data));
TypeScript
const token = process.env.SCRIPTIX_TOKEN;
const headers = new Headers({
'Authorization': `Bearer ${token}`
});
const response = await fetch('https://api.scriptix.io/api/v3/account/me', {
headers
});
Security Best Practices
1. Never Expose API Keys
❌ Don't:
- Commit keys to version control
- Hardcode keys in source code
- Expose keys in client-side code
- Share keys in public forums
- Log keys in application logs
✅ Do:
- Use environment variables
- Store in secure vaults (AWS Secrets Manager, etc.)
- Rotate keys regularly
- Use separate keys for dev/production