Quick Start
Get up and running in 3 steps:
Call init to get session
Use session ID in requests
Login, fetch data, manage state
Endpoint
https://proudlyauthentication.com/api/v1 (GET, POST)
All requests can use either:
- Route Format:
?route={admin}/{app}/{action} - Form/JSON Format: POST with form data or JSON body
Core Concepts
Handshake Flow
The API uses a handshake pattern for session management:
- Client calls
init→ receivessession_idandsecret - Client uses
session_idin subsequent requests - Optional: C++ clients encrypt requests using the returned
secret
curl -s "https://proudlyauthentication.com/api/v1?route={admin_id}/{app_id}/init"
# Response:
# {
# "success": true,
# "session_id": "abc123xyz...",
# "secret": "secret_key..."
# }Supported Actions
The API supports the following actions. Route example: /api/v1?route={admin}/{app}/ACTION_NAME
Handshake
Authenticate
New customer
Heartbeat
User subs
Get variable
Set variable
File proxy
Chat history
Send message
Profile pic
Self ban
Common Parameters
| sessionid | Handshake session from init. Required for authenticated actions. |
| action | Action to perform. Use with route format or as parameter. |
| varid | Variable ID or name (for getuservariable / setuservariable) |
| fileid | File ID from application's file proxies (for downloadfile) |
| channel | Chat channel name (for chatget / chatsend) |
| message | Message text to send (for chatsend) |
| target_username | Username to look up (for profile picture, user lookup, etc.) |
Examples
Login with Session
curl -s -X POST "https://proudlyauthentication.com/api/v1" \
-d "route={admin}/{app}/login" \
-d "sessionid={session_id}" \
-d "username=alice" \
-d "password=secret123"Get User Variables
curl -s -X POST "https://proudlyauthentication.com/api/v1" \
-H "Content-Type: application/json" \
-d '{
"route": "{admin}/{app}/getuservariable",
"sessionid": "{session_id}",
"varid": "user_level"
}'Download File
curl -s -X POST "https://proudlyauthentication.com/api/v1" \
-d "route={admin}/{app}/downloadfile" \
-d "sessionid={session_id}" \
-d "fileid=your_file_id_here" \
-o downloaded_file.zipPython Quickstart
import requests
BASE = "https://proudlyauthentication.com/api/v1"
# 1. Init
resp = requests.get(BASE, params={"route": "{admin}/{app}/init"})
session_id = resp.json()["session_id"]
print(f"Session: {session_id}")
# 2. Login
resp = requests.post(BASE, data={
"route": "{admin}/{app}/login",
"sessionid": session_id,
"username": "alice",
"password": "secret"
})
print(resp.json())
# 3. Get subscriptions
resp = requests.post(BASE, data={
"route": "{admin}/{app}/getsubscriptions",
"sessionid": session_id
})
print(resp.json())Security
secret in the handshake that native clients can use for request encryption.
APPLICATION_LEGACY_ENCRYPTION_KEY env var exists for backwards compatibility, but application-specific keys are recommended.
All sensitive operations validate session state and enforce proper authentication before responding.
Troubleshooting
Ensure the route parameter is present and in the format admin/app/action.
The session exists but is not authenticated. Call login or use a valid session ID.
Verify your server is running at localhost:5000. Check Flask logs for details.
Want to test interactively?
Open API Tester