Skip to main content

Idling.app API (0.338.7)

Download OpenAPI specification:Download

Complete API documentation for Idling.app - a modern social platform

Authentication

User authentication and session management

Unlink an authentication provider account

Removes a linked authentication provider account from the user's profile. Users must have at least one authentication method remaining.

Authorizations:
NextAuth
query Parameters
providerId
required
string

The ID of the provider account to unlink

Responses

Response samples

Content type
application/json
{
  • "message": "Account unlinked successfully",
  • "provider": "google"
}

Users

User profile and account management

Get user profile by ID

Retrieve a user's public profile information by their database ID

path Parameters
id
required
string^[0-9]+$
Example: 123

Database ID of the user

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "username": "string",
  • "display_name": "string",
  • "avatar_url": "string",
  • "bio": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "profile_visibility": "public"
}

Admin

Administrative operations (admin only)

Get permissions with search, filtering, and pagination

Retrieve a comprehensive list of permissions with advanced filtering, search, and pagination capabilities. Includes usage statistics and role associations.

Authorizations:
NextAuth
query Parameters
search
string

Search term to filter permissions by name, display_name, or description

category
string

Filter permissions by category

status
string
Default: "all"
Enum: "all" "active" "disabled" "archived"

Filter permissions by status

risk_level
string
Default: "all"
Enum: "all" "low" "medium" "high" "critical"

Filter permissions by risk level

sort_by
string
Default: "sort_order"
Enum: "name" "display_name" "category" "created_at" "updated_at" "usage_count" "sort_order"

Field to sort by

sort_order
string
Default: "asc"
Enum: "asc" "desc"

Sort order direction

page
integer >= 1
Default: 1

Page number for pagination

limit
integer [ 1 .. 100 ]
Default: 20

Number of permissions per page

Responses

Response samples

Content type
application/json
{
  • "overview": { },
  • "permissions": [
    ],
  • "pagination": {
    }
}

Create a new permission

Create a new permission with specified name, display name, category, and other properties

Authorizations:
NextAuth
Request Body schema: application/json
required
name
required
string [ 1 .. 100 ] characters ^[a-z0-9._-]+$

Unique permission name (lowercase, alphanumeric, dots, underscores, hyphens)

display_name
required
string [ 1 .. 200 ] characters

Human-readable display name

description
string

Optional description of the permission

category
required
string [ 1 .. 50 ] characters

Permission category

is_inheritable
boolean
Default: false

Whether this permission can be inherited

risk_level
string
Default: "low"
Enum: "low" "medium" "high" "critical"

Risk level associated with this permission

dependencies
Array of strings
Default: []

List of permission names this permission depends on

metadata
object
Default: {}

Additional metadata for the permission

reason
string

Optional reason for creating this permission

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "display_name": "string",
  • "description": "string",
  • "category": "string",
  • "is_inheritable": false,
  • "risk_level": "low",
  • "dependencies": [ ],
  • "metadata": { },
  • "reason": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "permission": { },
  • "message": "string"
}

Get users for admin management

Retrieve a paginated list of users with comprehensive information for admin management

Authorizations:
NextAuth
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer <= 100
Default: 20

Number of users per page

search
string

Search term to filter users by name, email, or provider

Responses

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "currentPage": 0,
  • "totalPages": 0,
  • "pagination": {
    }
}

Get available roles for assignment

Retrieve a list of available roles that can be assigned to users. Excludes protected roles that can only be assigned via database.

Authorizations:
NextAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Emojis

Emoji browsing and management

Get emojis by OS and category

Fetches OS-specific emojis with optional filtering by category and search terms

query Parameters
category
string

Filter by emoji category (e.g., 'smileys', 'animals')

search
string

Search term to filter emojis by name

page
integer
Default: 1

Page number for pagination

per_page
integer <= 100
Default: 50

Number of emojis per page

include_custom
boolean
Default: false

Include custom user-uploaded emojis

Responses

Response samples

Content type
application/json
{
  • "emojis": [
    ],
  • "categories": [
    ],
  • "os_info": {
    },
  • "total_count": 0,
  • "page": 0,
  • "per_page": 0
}

Upload custom emoji

Upload a custom emoji image for the authenticated user

Authorizations:
NextAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>

Emoji image file (PNG, JPG, GIF)

name
required
string

Name for the custom emoji

category
string

Category for the emoji

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "emoji": {
    }
}

Track emoji usage

Track usage statistics for an emoji

Request Body schema: application/json
required
emoji_id
required
string

ID of the emoji being used

emoji_type
required
string
Enum: "windows" "mac" "custom"

Type of emoji being tracked

Responses

Request samples

Content type
application/json
{
  • "emoji_id": "string",
  • "emoji_type": "windows"
}

Response samples

Content type
application/json
{
  • "success": true
}

Track emoji usage statistics

Records usage statistics for emojis to track popularity and usage patterns

Request Body schema: application/json
required
emoji_id
required
string

ID of the emoji being used

emoji_type
required
string
Enum: "windows" "mac" "custom"

Type of emoji being tracked

Responses

Request samples

Content type
application/json
{
  • "emoji_id": "1f600",
  • "emoji_type": "windows"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Emoji usage tracked successfully"
}

Upload

File upload operations

Upload an image file

Upload an image file to the server with validation and security checks

Authorizations:
NextAuth
Request Body schema: multipart/form-data
required
file
required
string <binary>

Image file to upload (JPG, PNG, GIF, WebP)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "url": "/uploads/images/1640995200000-a1b2c3d4.jpg",
  • "filename": "1640995200000-a1b2c3d4.jpg",
  • "size": 204800,
  • "type": "image/jpeg"
}

Method not allowed

GET requests are not supported for file uploads

Responses

Response samples

Content type
application/json
{ }

Images

Dynamic image generation

Alerts

System alerts and notifications

Dismiss an alert for the current user

Dismisses a custom alert for the authenticated user and updates analytics

Authorizations:
NextAuth
Request Body schema: application/json
required
alertId
required
number

ID of the alert to dismiss

userId
required
number

ID of the user dismissing the alert (must match authenticated user)

Responses

Request samples

Content type
application/json
{
  • "alertId": 123,
  • "userId": 456
}

Response samples

Content type
application/json
{
  • "success": true
}

System

System information and metadata

Get application version

Returns the current version of the idling.app application

Responses

Response samples

Content type
application/json
{
  • "version": "0.338.7"
}

Documentation

API documentation endpoints

OpenAPI specification

Returns the OpenAPI 3.0 specification for the Idling.app API

Responses

Response samples

Content type
application/json
{ }

Swagger UI HTML page

Serves the interactive Swagger UI documentation interface

Responses

Analytics

Get comprehensive analytics dashboard data

Retrieve detailed analytics data including sessions, page views, geographic data, device information, VPN usage, heatmap data, and subscription analytics for the admin dashboard.

Authorizations:
NextAuth
query Parameters
dateRange
string
Default: "30d"
Enum: "7d" "30d" "90d" "1y"

Date range for analytics data

metrics
Array of strings
Items Enum: "sessions" "pageviews" "clicks" "users" "geographic" "devices" "vpn" "heatmap" "subscriptions"

Specific metrics to include in the response

granularity
string
Default: "daily"
Enum: "hourly" "daily" "weekly" "monthly"

Time granularity for time-series data

timezone
string
Default: "UTC"

Timezone for time-based calculations

country
string

Filter analytics by specific country code

device_type
string
Enum: "desktop" "mobile" "tablet"

Filter analytics by device type

include_vpn
boolean
Default: true

Include VPN/proxy traffic in analytics

format
string
Default: "json"
Enum: "json" "csv"

Response format

Responses

Response samples

Content type
application/json
{
  • "overview": {
    },
  • "trends": {
    },
  • "topPages": [
    ],
  • "devices": {
    }
}