FrictaSolv REST API reference
All authenticated endpoints require an Authorization header with a JWT token:
Authorization: Bearer <your_jwt_token>For organization API calls, use the organization's API key:
Authorization: Bearer <org_api_key>/api/auth/registerRegister new organization account
email: stringpassword: stringorg_name: string{
"access_token": "string",
"user": "object"
}/api/auth/loginLogin and get JWT token
email: stringpassword: string{
"access_token": "string",
"user": "object"
}/api/organizationsGet organization details
{
"id": "int",
"name": "string",
"tier_id": "int",
"enabled": "bool"
}/api/organizations/:org_idGet org details by ID (super admin only)
{
"id": "int",
"name": "string",
"api_key": "string",
"tier_id": "int"
}/api/organizations/:org_id/eventsCreate frustration event
frustration_score: intpage_url: stringconsole_errors: intfailed_requests: int{
"id": "int",
"frustration_score": "int",
"created_at": "timestamp"
}/api/organizations/:org_id/eventsList frustration events
min_score: int (optional)from_date: ISO8601 (optional)to_date: ISO8601 (optional)limit: intoffset: int{
"events": "array",
"total": "int"
}/api/organizations/:org_id/events/exportExport events as CSV
min_score: intfrom_date: ISO8601to_date: ISO8601CSV file download/api/organizations/:org_id/alert-settingsGet alert settings
{
"email_recipients": "string",
"slack_webhook_url": "string",
"teams_webhook_url": "string",
"min_score": "int",
"digest_hour": "int"
}/api/organizations/:org_id/alert-settingsUpdate alert settings
email_recipients: stringslack_webhook_url: stringteams_webhook_url: stringmin_score: intdigest_hour: int{
"success": "bool"
}/api/organizations/:org_id/page-thresholdsList page thresholds
array of { page_url_pattern, threshold_score }/api/organizations/:org_id/page-thresholdsCreate page threshold
page_url_pattern: stringthreshold_score: int{
"id": "int",
"page_url_pattern": "string",
"threshold_score": "int"
}/api/organizations/:org_id/page-thresholds/:idDelete page threshold
{
"success": "bool"
}/api/admin/usersList all platform users
{
"users": "array of { id, email, is_super_admin, created_at }"
}/api/admin/usersCreate new user
email: stringpassword: string{
"id": "int",
"email": "string"
}/api/admin/users/:user_idDelete user
{
"success": "bool"
}/api/admin/orgsList all organizations
{
"orgs": "array of { id, name, api_key, tier_id, enabled }"
}/api/admin/orgs/:org_id/tierAssign tier to organization
tier_id: int{
"success": "bool",
"tier_id": "int"
}/api/admin/orgs/:org_id/disableDisable organization
{
"success": "bool"
}/api/admin/orgs/:org_id/enableEnable organization
{
"success": "bool"
}/api/admin/orgs/:org_id/rotate-keyRotate organization API key
{
"api_key": "string"
}/api/admin/orgs/:org_id/membersList org team members
array of { id, email, role }/api/admin/orgs/:org_id/membersAdd user to organization
email: string{
"success": "bool"
}/api/admin/orgs/:org_id/members/:user_idRemove user from organization
{
"success": "bool"
}/api/admin/tiersList all subscription tiers
array of { id, name, display_name, price_monthly, features: array }/api/admin/tiers/:tier_idGet tier details
{ id, name, display_name, price_monthly, max_events_per_minute, max_team_members, retention_days, features }/api/admin/tiers/:tier_id/features/:feature_keyToggle feature for tier
enabled: bool{
"success": "bool",
"enabled": "bool"
}• 4xx errors: Client error (invalid request, missing auth, etc)
• 5xx errors: Server error
• All errors return JSON with detail field explaining the issue