Auth Service
auth.knogin.com
Handles all authentication, user management, MFA, SSO, API keys, roles, permissions, and session management. This is where you obtain tokens for accessing the API Service.
- 80+ Endpoints
- OAuth2/OIDC
- TOTP/Passkey/Voice MFA
Complete documentation for all Argus APIs including GraphQL, REST, and WebSocket endpoints. All endpoints require a valid argus_auth_token to return data.
Argus Command Center exposes two primary API services with over 200 REST endpoints and 180+ GraphQL operations. All authenticated endpoints require a valid argus_auth_token obtained through the Auth Service.
auth.knogin.com
Handles all authentication, user management, MFA, SSO, API keys, roles, permissions, and session management. This is where you obtain tokens for accessing the API Service.
api.knogin.com
The core intelligence platform API providing REST endpoints and GraphQL for investigations, cases, profiles, evidence, alerts, monitors, AI services, and real-time communication.
https://auth.knogin.comhttps://api.knogin.comhttps://auth-staging.knogin.comhttps://api-staging.knogin.comAll authenticated API requests require a valid argus_auth_token. Tokens are obtained through the Auth Service and must be included in all subsequent requests to both services. API keys can be generated in the Auth Service dashboard under your user profile for programmatic access.
After successful login, cookies are set automatically:
platform_access_token=eyJhbGc... # Short-lived access token
knogin_refresh_token=eyJhbGc... # Long-lived refresh tokenInclude the token in the Authorization header:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...# Using username/password (OAuth2 form)
curl -X POST https://auth.knogin.com/v1/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=user@example.com&password=your_password"
# Using API Key (recommended for service-to-service)
curl -X POST https://auth.knogin.com/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"api_key": "your_api_key", "platform": "argus"}'
# Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600
}The Auth Service (auth.knogin.com) handles all authentication, authorization, user management, MFA, SSO, API keys, roles, permissions, feature flags, and multi-tenant management. It contains 80+ endpoints organized by functionality.
Core authentication endpoints for obtaining, refreshing, and managing access tokens and sessions.
/v1/tokenOAuth2-compatible login endpoint that accepts form-encoded email and password. Issues platform-specific access tokens and sets HTTP-only cookies (platform_access_token, knogin_refresh_token) for browser sessions. If MFA is enabled, returns a challenge cookie instead requiring verification via /v1/mfa/verify-login. Supports redirect_uri for post-login navigation.
/v1/auth/tokenAuthenticate using an API key to receive a platform-specific JWT token. Ideal for service-to-service authentication, CI/CD pipelines, and programmatic access. API keys can be generated in the Auth Service dashboard under your user profile. Request body requires api_key and platform fields.
/v1/auth/refreshRefresh expired access tokens using the knogin_refresh_token cookie. Returns new access token cookies without requiring re-authentication. Supports optional platform path parameter for platform-specific token refresh. Essential for maintaining long-lived sessions in browser applications.
/v1/auth/logoutTerminates the current user session by invalidating all tokens and deleting authentication cookies. Removes the session from the server-side session store. Supports optional platform path parameter. Returns 204 No Content on success.
/v1/auth/revoke-user-sessions/{user_id}Forcefully terminates all active sessions for a specific user across all devices and platforms. Used for security incidents or when a user's access needs to be immediately revoked. Returns count of sessions revoked. Requires admin or superuser role.
Endpoints for users to manage their own profiles, view their information, and update their settings.
/v1/users/meReturns the complete profile of the currently authenticated user including email, display name, organization, roles, permissions, MFA status, created date, and last login timestamp. Used by frontend applications to populate user dashboards and check permissions.
/v1/users/meAllows users to update their own profile information including display name, phone number, and password. If password is changed, all other sessions are automatically terminated for security. Requires current password verification for sensitive changes.
/v1/auth/meReturns current user profile along with evaluated feature flags for the user's tenant and any user-specific overrides. Used by frontend applications to determine which features to display based on the user's subscription tier and enabled experiments.
/v1/users/createPublic endpoint for new users to create an account. Accepts email and password, creates the user in the system, and sends a verification email. Rate limited to 2 requests per hour per IP to prevent abuse. Returns the created user object.
Comprehensive MFA support including TOTP (authenticator apps), WebAuthn passkeys, and voice verification. Users can enable multiple methods for layered security.
/v1/portal/mfa/totp/enableGenerates a new TOTP secret and returns it along with a QR code image (base64 encoded) for scanning with authenticator apps like Google Authenticator, Authy, or 1Password. The secret is stored in pending state until verified.
/v1/portal/mfa/totp/verify-and-activateVerifies a TOTP code from the user's authenticator app and activates TOTP MFA for their account. Requires the 6-digit code from the authenticator app. Once activated, TOTP will be required for all future logins.
/v1/portal/mfa/totp/disableDisables TOTP-based MFA for the current user. All active sessions are terminated for security after disabling. User must have another MFA method enabled or MFA must not be required by organization policy.
/v1/mfa/verify-loginValidates the MFA code (TOTP) during the login challenge flow. Called after initial login when MFA is required. Requires the TF_AUTH challenge cookie and the 6-digit TOTP code. On success, issues full access tokens.
/v1/portal/mfa/passkey/generate-registrationGenerates WebAuthn registration options for creating a new passkey credential. Returns challenge, relying party info, and supported algorithms. Used by the browser's WebAuthn API (navigator.credentials.create) to create a new passkey.
/v1/portal/mfa/passkey/verify-registrationVerifies the WebAuthn attestation response from the browser and saves the new passkey credential. Stores the public key, credential ID, and metadata. Users can register multiple passkeys for different devices.
/v1/portal/mfa/passkey/{credential_id}Removes a specific passkey credential by its ID. Users can manage their registered passkeys and remove old or compromised devices. Returns 204 No Content on success.
/v1/portal/mfa/passkey/generate-authenticationGenerates WebAuthn authentication options for passkey-based login. Accepts email address and returns challenge with allowed credentials. Used by navigator.credentials.get for passwordless login initiation.
/v1/portal/mfa/passkey/verify-authenticationVerifies the WebAuthn assertion response and completes passkey-based login. On successful verification, issues full access tokens and cookies. Supports redirect_uri for post-login navigation.
/v1/portal/mfa/voice/enrollEnrolls a voice sample for voice-based MFA. Accepts base64-encoded audio data of the user speaking a passphrase. The voice print is processed and stored for future verification. Requires multiple samples for accurate enrollment.
/v1/portal/mfa/voice/verifyVerifies a voice sample against the enrolled voice profile during MFA challenge. Accepts base64-encoded audio and returns match score. Requires MFA challenge cookie. Used as alternative to TOTP for users who prefer voice authentication.
/v1/portal/mfa/voiceDisables voice-based MFA and deletes the stored voice profile. Returns 204 No Content on success. User must have another MFA method enabled if MFA is required by organization policy.
/v1/portal/mfa/challenge-infoReturns information about which MFA methods are available for the pending login challenge. Response includes totp_enabled, voice_enabled, and passkey_enabled flags. Used by login UI to show appropriate MFA options.
OAuth2/OIDC-based single sign-on integration with enterprise identity providers including Google Workspace and Microsoft Entra ID (Azure AD).
/v1/portal/sso/available-providersReturns a list of SSO providers configured for the current tenant. Response includes provider names and count. Used by login UI to display available SSO login buttons (e.g., 'Sign in with Google', 'Sign in with Microsoft').
/v1/portal/login/{provider}Initiates the OAuth2/OIDC authorization flow with the specified identity provider. Redirects the user to the provider's login page (Google, Microsoft). Accepts redirect_uri for post-login navigation.
/v1/portal/auth/{provider}OAuth2/OIDC callback endpoint that handles the authorization code returned by the identity provider. Exchanges code for tokens, creates or updates user account, and establishes session with cookies.
Create and manage API keys for programmatic access. API keys can be scoped to specific platforms and have configurable expiration.
/v1/portal/users/me/keysCreates a new API key for programmatic access. The full key is only returned once at creation time - store it securely. Supports platform scoping and optional expiration date. Returns key prefix for identification.
/v1/portal/users/me/keysReturns all API keys for the current user. Shows key prefix, created date, last used date, and associated platforms. Does not return the full key value for security.
/v1/portal/users/me/keys/{key_id}Permanently revokes an API key, immediately invalidating all tokens issued using this key. Any applications using this key will immediately lose access. Cannot be undone.
Administrative endpoints for managing users, roles, and permissions. Access varies based on role hierarchy.
/v1/portal/admin/usersReturns all users based on the caller's role. Managers see users in their organization only. Superusers see all users across all organizations. Supports pagination and filtering by role, status, and organization.
/v1/portal/admin/usersCreates a new user with specified email, password, roles, and organization assignment. Optionally sends welcome email. Can assign initial platform access and security clearance level. Superuser only.
/v1/portal/admin/users/{user_id}Returns detailed user information including profile, roles, permissions, MFA status, and activity history. Managers can only view users in their organization.
/v1/portal/admin/users/{user_id}Updates user details including roles, permissions, platform access, and security clearance. Can activate/deactivate users. Role changes take effect on next token refresh. Superuser only for cross-org changes.
/v1/portal/admin/users/{user_id}Permanently deletes a user account and all associated data including API keys and sessions. This action is irreversible. Superuser only. Deleted users cannot be recovered.
/v1/users/{user_id}/permissionsUpdates a user's granular permissions independent of their role-based permissions. Allows fine-tuning access control. Admin or superuser only. Returns updated permission set.
Define custom roles and granular permissions for fine-grained access control within organizations.
/v1/rolesReturns all roles available in the system including built-in roles (admin, manager, analyst, viewer) and custom roles defined for the organization. Includes permissions associated with each role.
/v1/rolesCreates a new custom role with specified permissions. Custom roles extend the built-in role hierarchy. Superuser only. Role names must be unique within the organization.
/v1/roles/{role_id}Updates a custom role's name, description, or permissions. Changes affect all users with this role on their next token refresh. Cannot modify built-in roles. Superuser only.
/v1/roles/{role_id}Deletes a custom role. Users with this role will lose associated permissions. Cannot delete roles currently assigned to users. Cannot delete built-in roles. Superuser only.
Control feature availability at tenant and user level for gradual rollouts and A/B testing.
/v1/feature-flags/tenantReturns all feature flags and their values for the current tenant. These are the base flags that apply to all users in the organization unless overridden at the user level.
/v1/feature-flags/tenantUpdates feature flags for the tenant. Changes apply to all users in the organization unless they have user-level overrides. Used to enable/disable features for the entire organization.
/v1/feature-flags/user/{user_id}Returns user-specific feature flag overrides. These override tenant-level flags for individual users. Used for beta testing with specific users or providing premium features to select accounts.
/v1/feature-flags/user/{user_id}Sets user-specific feature flag overrides. Overrides can only be a subset of organization flags - cannot enable flags not available to the tenant. Returns updated user flags.
Manage the multi-tenant hierarchy including Systems Integrators (SI) who resell and manage Argus deployments for their customers.
/v1/systems-integratorsCreates a new Systems Integrator organization that can manage multiple customer tenants. Knogin admin only. SI receives their own admin portal and can create/manage customer deployments.
/v1/systems-integratorsReturns all Systems Integrators in the platform. Knogin admin only. Includes metadata like customer count, subscription tier, and contact information.
/v1/systems-integrators/{si_id}Returns detailed information about a specific Systems Integrator including their customers, usage statistics, and configuration. SI admins can only access their own SI.
/v1/systems-integrators/{si_id}/customersReturns all customer tenants managed by a Systems Integrator. SI admins can only view their own customers. Includes tenant status, user count, and feature enablement.
/v1/systems-integrators/{si_id}/customersCreates a new customer tenant under a Systems Integrator. The SI becomes the managing entity for billing and support. Configures initial features based on SI's subscription tier.
/v1/tenants/{tenant_id}Returns detailed information about a specific tenant including configuration, features, usage quotas, and billing status. SI admins can only access tenants they manage.
/v1/tenants/{tenant_id}Updates tenant configuration including name, features, quotas, and metadata. Used to enable/disable features or adjust resource limits for a customer.
/v1/tenants/{tenant_id}Archives or deletes a tenant and all associated data. Knogin admin only. Data is retained for 30 days before permanent deletion. Used when customer churns or during cleanup.
Administrative configuration and utility endpoints.
/v1/portal/admin/configReturns configuration data for the admin UI including available roles, permissions catalog, country list, supported platforms, and feature availability. Used to populate admin dashboard dropdowns and forms.
/v1/portal/data/countriesReturns a list of all countries with their regions/states for address forms. Includes ISO codes, names, and subdivisions. Public endpoint used by registration and profile forms.
/healthSimple health check endpoint that returns service status. Used by load balancers and monitoring systems. Returns status: healthy, service: auth_service.
/v1/platforms/supportedReturns the list of platforms that can be specified when issuing tokens. Platforms represent different Argus products/modules that a user might access. Retrieved from Firestore configuration.
/audit/logsReturns security audit logs for the authentication service. Includes login attempts, permission changes, and administrative actions. Administrator with audit permission required.
The API Service (api.knogin.com) is the core intelligence platform providing 130+ REST endpoints for investigations, cases, profiles, evidence, alerts, AI services, real-time communication, and more. All endpoints require authentication unless marked as public.
System health monitoring and capability discovery endpoints for integration and monitoring.
/api/v1/healthReturns detailed health status of all system components including Neo4j graph database, PostgreSQL relational database, Redis cache, AI services (OpenAI, Anthropic, Google AI), and external integrations. Response includes latency metrics and connection status for each component. Used for operations monitoring and incident response.
/api/v1/health/simpleLightweight health check returning minimal response for load balancers and orchestration systems (Kubernetes, Cloud Run). Returns 200 OK if service is running. Does not check downstream dependencies for faster response time.
/api/v1/health/db-checkVerifies connectivity to all database systems (Neo4j, PostgreSQL, Firestore). Returns individual status for each database. Used for deployment verification and troubleshooting connectivity issues.
/api/v1/health/connectivityChecks connectivity to all external services including AI providers, OSINT data sources, storage systems, and notification services. Returns detailed status for each integration point.
/api/v1/capabilitiesReturns comprehensive system capabilities for frontend configuration including supported domains, available intelligence providers, accepted file formats, API endpoints, enabled features, rate limits, and maximum file sizes. Essential for dynamic UI configuration.
AI-powered document processing for extracting entities, relationships, and intelligence from text, images, audio, and video files.
/api/v1/intelligence/process-textUpload and process text, PDF, or DOCX files for investigation. Uses AI to extract entities (people, organizations, locations), relationships, events, and key intelligence from documents. Supports files up to 50MB. Results are stored and linked to the investigation.
/api/v1/intelligence/process-text/base64Cloudflare-compatible endpoint for processing base64-encoded document files. Accepts JSON body with file_content, filename, and mime_type. Supports .txt, .pdf, and .docx formats. Ideal for serverless environments.
/api/v1/process-image-fileUpload and process images for AI-powered visual analysis. Performs OCR text extraction, object detection, face detection, location identification, and scene classification. Supports JPEG, PNG, GIF, and WebP formats.
/api/v1/process-image-file/base64Cloudflare-compatible endpoint for processing base64-encoded images. Returns extracted text, detected objects, faces, and identified locations. Ideal for serverless environments with request body size limits.
/api/v1/process-audio-fileUpload and process audio files for transcription and speaker identification. Uses advanced speech-to-text and speaker diarization. Supports MP3, WAV, OGG, and M4A formats up to 100MB.
/api/v1/process-audio-file/base64Cloudflare-compatible endpoint for processing base64-encoded audio. Returns full transcription with timestamps and speaker labels. Note: Large audio files should use direct upload endpoint.
/api/v1/process-video-fileUpload and process video files for comprehensive analysis. Extracts audio transcription, detects faces across frames, identifies scenes and objects, and generates visual timeline. Supports MP4, MOV, AVI, WebM up to 500MB.
/api/v1/process-video-file/base64Cloudflare-compatible endpoint for processing base64-encoded video. Limited to smaller files due to encoding overhead. For larger videos, use presigned URL upload.
Create, update, and enrich entity profiles with data from intelligence providers. Supports individual and batch operations.
/api/v1/profilesCreates a new entity profile (person, organization, vehicle, etc.). Accepts initial data and automatically validates/normalizes fields. Triggers background enrichment if auto_enrich is enabled.
/api/v1/profiles/{profile_id}Returns complete profile data including all attributes, linked entities, timeline, and enrichment data. Supports field selection for performance optimization.
/api/v1/profiles/{profile_id}Updates profile fields. Supports partial updates. Maintains audit trail of all changes. Triggers re-enrichment if core identifying fields are modified.
/api/v1/profiles/{profile_id}Soft-deletes a profile and all linked data. Profile can be recovered within 30 days. Permanently deletes after retention period. Audit trail is preserved.
/api/v1/profiles/{profile_id}/enrichEnriches a profile with data from intelligence providers. Optionally specify which providers to use (social, criminal, financial, etc.). Returns aggregated data including social media presence, public records, and open-source intelligence.
/api/v1/batch/profilesRetrieves multiple profiles by ID in a single request. Maximum 100 profiles per request. Returns profiles in the same order as requested IDs. Missing profiles return null.
/api/v1/batch/enrichEnriches multiple profiles in a single request. Maximum 10 profiles per request to manage provider rate limits. Returns individual success/failure status for each profile.
/api/v1/profiles/searchFull-text search across all profile fields. Supports filters by type, status, date range, and custom fields. Returns paginated results with relevance scoring.
/api/v1/profiles/linkCreates a relationship between two profiles (e.g., 'works_for', 'related_to', 'owns'). Stores relationship metadata and evidence. Bidirectional relationships are created automatically.
/api/v1/profiles/linkRemoves a relationship between two profiles. Maintains audit trail of the removal. Original relationship data is preserved for compliance.
Manage investigations, cases, tasks, and the complete investigation lifecycle.
/api/v1/investigationsCreates a new investigation workspace with title, description, and classification level. Automatically assigns the creator as lead investigator. Returns investigation ID for subsequent operations.
/api/v1/investigations/{investigation_id}Returns complete investigation details including metadata, team members, cases, profiles, files, and activity timeline. Supports field selection for large investigations.
/api/v1/investigations/{investigation_id}Updates investigation metadata including title, description, status, and classification. Changes trigger notifications to team members. Audit logged.
/api/v1/investigations/{investigation_id}Soft-deletes an investigation and all contained data. Requires confirmation for investigations with active cases. Data retained for compliance period.
/api/v1/investigationsReturns investigations accessible to the current user. Supports filtering by status, date, team member, and search query. Paginated with sorting options.
/api/v1/investigations/{investigation_id}/filesAssociates uploaded files with an investigation. Files are automatically queued for AI processing based on type. Triggers indexing for search.
Configure monitoring rules and manage alerts triggered by real-time data streams.
/api/v1/alertsProgrammatically creates an alert. Typically alerts are created by monitors, but manual creation is supported for integrations. Requires title, severity, and at least one entity reference.
/api/v1/alerts/{alert_id}Returns complete alert details including triggering data, matched entities, decision history, and linked investigations. Supports expansion of related entities.
/api/v1/alerts/{alert_id}Updates alert metadata or status. Status transitions are validated (e.g., cannot reopen a dismissed alert). All changes are audit logged with user and timestamp.
/api/v1/alerts/{alert_id}/decideRecords a decision on an alert: escalate, investigate, dismiss, or false positive. Decision includes rationale and optional entity disposition. Closed alerts may trigger follow-up workflows.
/api/v1/alertsReturns alerts matching filter criteria. Supports filtering by severity, status, monitor, date range, and entity. Paginated with configurable page size.
Configure monitoring rules and manage alerts triggered by real-time data streams.
/api/v1/monitorsCreates a monitoring rule that triggers alerts based on data stream patterns. Supports complex conditions with entity matching, geographic bounds, temporal patterns, and threshold triggers.
/api/v1/monitors/{monitor_id}Returns monitor configuration and statistics including alert count, last trigger time, and performance metrics. Includes condition details and notification settings.
/api/v1/monitors/{monitor_id}Updates monitor conditions, thresholds, or notification settings. Changes take effect immediately. Pausing a monitor stops new alerts but preserves history.
/api/v1/monitors/{monitor_id}Permanently deletes a monitor. Associated alerts are preserved but marked as orphaned. Consider pausing instead for audit trail preservation.
/api/v1/monitorsReturns all monitors for the current tenant. Supports filtering by status, type, and alert activity. Includes summary statistics for each monitor.
/api/v1/ai/generate-monitor-specUses AI to convert natural language descriptions into structured monitor specifications. Includes safety analysis, parameter extraction, and estimated alert volume. Helps non-technical users create complex monitors.
Direct access to AI capabilities including text analysis, entity extraction, relationship mapping, and natural language processing.
/api/v1/ai/analyze-textPerforms comprehensive AI analysis on text content. Extracts entities, relationships, events, sentiment, and key themes. Supports multiple languages with automatic detection.
/api/v1/ai/generate-graphCreates a knowledge graph from unstructured text. Identifies entities, infers relationships, and generates structured graph data suitable for visualization or Neo4j import.
/api/v1/ai/summarizeGenerates concise summaries of long-form content. Supports multiple summary lengths and styles (executive, technical, bullet points). Preserves key entities and facts.
/api/v1/ai/translateTranslates content between supported languages while preserving entity names and technical terms. Returns both translation and detected source language.
/api/v1/ai/extract-entitiesExtracts and classifies named entities from text. Returns entity spans, types, confidence scores, and resolved identifiers where available. Supports custom entity types.
Upload, download, and manage files with full RBAC enforcement and audit logging.
/api/v1/filesUploads a file to secure storage. Automatically detects file type and queues for appropriate processing. Returns file ID and processing status. Supports chunked uploads for large files.
/api/v1/files/{file_id}/downloadDownloads a file with full RBAC enforcement and audit logging. Verifies user has access to the associated investigation/case. Supports range requests for large files. Returns file with appropriate content-type headers.
/api/v1/files/{file_id}/streamStreams a file for progressive loading of large files. Supports HTTP range requests for seeking in audio/video files. More efficient than full download for large media files.
/api/v1/files/{file_id}/presigned-urlGenerates a time-limited presigned URL for direct file access from Cloudflare R2 storage. URL expires after configurable duration (default 1 hour). Useful for embedding files in reports or sharing with external tools.
/api/v1/admin/filesReturns all files in the system with metadata and access statistics. Admin or superuser only. Supports tenant filtering for multi-tenant deployments. Used for storage management and auditing.
/api/v1/admin/files/{file_id}/auditReturns complete audit trail for a specific file including all access events, downloads, and modifications. Admin or superuser only. Essential for chain of custody documentation.
Self-describing API endpoints for dynamic integration and documentation.
/api/v1/docs/endpointsReturns comprehensive documentation of all API endpoints including paths, methods, parameters, and response schemas. Used for generating client SDKs and integration documentation.
/api/v1/metadata/domainsReturns metadata about all available domains (entity types) including their properties, relationships, and UI configuration. Essential for building dynamic UIs that adapt to schema changes.
/api/v1/metadata/enumsReturns all enumeration types used in the API including status codes, priority levels, classification levels, and other categorical values. Used for populating dropdown menus.
/api/v1/metadata/providersReturns metadata about available OSINT and data providers including capabilities, rate limits, and required credentials. Used for configuring data source preferences.
Cryptographic audit trails with Merkle tree verification for tamper-evident logging.
/api/v1/audit/anchor/latestReturns the most recent Merkle tree root hash anchoring the audit log. Used for cryptographic verification of log integrity. Anchor is periodically published to blockchain for immutability.
/api/v1/audit/anchor/proof/{entry_id}Returns a Merkle inclusion proof for a specific audit entry. Proof can be independently verified against the published anchor. Essential for forensic chain of custody requirements.
AI-assisted mission planning and operational support.
/api/v1/mission-plansAI-assisted mission planning based on scenario description, target profiles, geographic constraints, and threat assessment. Returns structured plan with resource allocation, timeline, and contingencies.
/api/v1/mission-plans/{plan_id}Iteratively refines an existing mission plan based on new constraints or feedback. Maintains plan history for comparison. Supports partial updates to specific plan sections.
Full case lifecycle management with workflow, assignments, templates, and timeline tracking.
/api/v1/casesCreates a new case within an investigation. Accepts title, description, priority, status, and assigned user. Automatically generates a unique case number and creates initial timeline entry.
/api/v1/cases/{case_id}Returns complete case details including metadata, assigned users, linked profiles, tasks, notes, attachments, and full activity timeline. Supports field selection for performance.
/api/v1/cases/{case_id}Updates case metadata including title, description, priority, status, due date, and custom fields. Changes are audit logged with user and timestamp.
/api/v1/cases/{case_id}Soft-deletes a case and all associated data. Requires confirmation for cases with active tasks. Data retained for compliance period before permanent deletion.
/api/v1/casesReturns cases with filtering by investigation, status, priority, assignee, date range, and tags. Supports pagination, sorting, and full-text search across case content.
/api/v1/cases/{case_id}/assignAssigns or reassigns a case to a user or team. Supports multiple assignees with primary/secondary designation. Triggers notification to assigned users.
/api/v1/cases/{case_id}/statusUpdates case status with workflow validation. Status transitions are validated based on workflow rules. Triggers automated actions based on status (e.g., notifications, task creation).
/api/v1/cases/{case_id}/link-profileAssociates an entity profile with a case. Specify the relationship type (subject, witness, victim, etc.) and relevance notes. Creates bidirectional link visible in both case and profile.
/api/v1/cases/{case_id}/link-profile/{profile_id}Removes the association between a profile and a case. Original link data is preserved in audit trail for compliance.
/api/v1/cases/{case_id}/timelineReturns the complete activity timeline for a case including status changes, assignments, profile links, task completions, and all modifications with timestamps and actors.
/api/v1/cases/bulk-updateUpdates multiple cases in a single request. Supports updating status, priority, assignee, or tags. Maximum 100 cases per request. Returns individual success/failure for each case.
/api/v1/cases/from-templateCreates a new case using a predefined template. Template defines default tasks, checklists, fields, and workflow stages. Accepts overrides for template values.
Create and manage tasks with assignments, checklists, dependencies, and progress tracking.
/api/v1/tasksCreates a new task within a case. Accepts title, description, assignee, due date, priority, and optional checklist items. Supports parent task for subtask hierarchies.
/api/v1/tasks/{task_id}Returns complete task details including metadata, checklist items, subtasks, comments, attachments, and time tracking information.
/api/v1/tasks/{task_id}Updates task fields including title, description, due date, priority, and progress. Supports partial updates. Changes are audit logged.
/api/v1/tasks/{task_id}Deletes a task and optionally its subtasks. Completed tasks are archived rather than deleted. Audit trail is preserved.
/api/v1/cases/{case_id}/tasksReturns all tasks for a case with filtering by status, assignee, due date, and priority. Supports hierarchical view showing subtasks nested under parents.
/api/v1/tasks/{task_id}/assignAssigns or reassigns a task to a user. Triggers notification to assigned user. Updates workload calculations for capacity planning.
/api/v1/tasks/{task_id}/completeMarks a task as completed with optional completion notes. Validates all required checklist items are complete. Updates case progress metrics.
/api/v1/tasks/{task_id}/checklistUpdates checklist items for a task. Add, remove, or toggle completion status of individual items. Supports reordering checklist items.
/api/v1/tasks/my-tasksReturns all tasks assigned to the current user across all cases. Supports filtering by status, due date, and priority. Useful for personal task dashboard.
/api/v1/tasks/bulk-updateUpdates multiple tasks in a single request. Supports updating status, assignee, due date, or priority. Maximum 50 tasks per request.
Investigative notes with rich text, threading, attachments, and visibility controls.
/api/v1/notesCreates a new note attached to a case or investigation. Supports rich text content, mentions (@user), and classification levels. Automatically indexes content for search.
/api/v1/notes/{note_id}Returns note content with metadata, attachments, and thread replies. Respects visibility settings (public, team, private).
/api/v1/notes/{note_id}Updates note content or metadata. Maintains version history for audit compliance. Only creator or admins can edit confidential notes.
/api/v1/notes/{note_id}Soft-deletes a note. Content is retained for compliance period. Confidential notes require admin approval to delete.
/api/v1/cases/{case_id}/notesReturns all notes for a case respecting visibility rules. Supports filtering by note type, author, and date range. Ordered by creation date by default.
/api/v1/notes/{note_id}/attachmentsAttaches a file to an existing note. File is automatically processed based on type. Maintains chain of custody for evidence-grade attachments.
/api/v1/notes/{note_id}/replyCreates a threaded reply to an existing note. Supports @mentions to notify specific users. Maintains conversation context for collaboration.
Manage file attachments with processing, chain of custody, and integrity verification.
/api/v1/attachmentsUploads and attaches a file to a case, note, or task. Automatically detects file type and queues for appropriate AI processing. Computes integrity hash for evidence chain.
/api/v1/attachments/{attachment_id}Returns attachment metadata including file info, processing status, extracted content, and access history. Supports thumbnail and preview URLs for media files.
/api/v1/attachments/{attachment_id}Soft-deletes an attachment. File remains in storage for compliance period. Evidence-grade attachments require approval workflow for deletion.
/api/v1/cases/{case_id}/attachmentsReturns all attachments for a case with filtering by file type, processing status, and upload date. Includes aggregate statistics (total size, file counts by type).
/api/v1/attachments/{attachment_id}/processTriggers reprocessing of an attachment with updated AI models or different processing options. Useful when new extraction capabilities become available.
/api/v1/attachments/{attachment_id}/chain-of-custodyReturns the complete chain of custody log for an attachment including all access events, transfers, and modifications. Essential for legal admissibility.
Network analysis, pathfinding, centrality metrics, and community detection on the knowledge graph.
/api/v1/graph/node/{node_id}Returns a single node from the knowledge graph with all properties and labels. Includes edge counts and sample relationships for context.
/api/v1/graph/node/{node_id}/neighborsReturns all directly connected nodes within specified depth. Supports filtering by relationship type and node labels. Configurable depth limit (max 5) to prevent performance issues.
/api/v1/graph/pathFinds shortest path(s) between two nodes using Dijkstra or A* algorithms. Returns path nodes, relationships, and total weight. Supports weighted edges for intelligent routing.
/api/v1/graph/subgraphExtracts a subgraph around specified seed nodes. Returns nodes and edges within specified hops. Useful for focused visualization of entity neighborhoods.
/api/v1/graph/queryExecutes a read-only Cypher query against the graph database. Query is validated and sandboxed for security. Returns results in tabular or graph format. Admin only.
/api/v1/graph/statisticsReturns aggregate statistics about the knowledge graph including node counts by label, edge counts by type, and graph density metrics.
/api/v1/graph/centralityCalculates centrality metrics (degree, betweenness, PageRank) for specified nodes or the entire graph. Used to identify key entities in a network.
/api/v1/graph/community-detectionRuns community detection algorithms (Louvain, Label Propagation) to identify clusters of related entities. Returns community assignments and modularity scores.
/api/v1/graph/link-predictionUses graph ML to predict likely but unobserved relationships between entities. Returns candidate links with confidence scores. Useful for investigation leads.
Location-based queries, clustering, heatmaps, routing, and geographic timeline analysis.
/api/v1/geo/searchSearches for entities with location data matching spatial criteria. Combines geographic bounds with entity filters (type, date, tags). Returns results with distance from reference point.
/api/v1/geo/within-boundsReturns all entities with locations within a rectangular bounding box defined by northeast and southwest coordinates. Optimized for map viewport queries.
/api/v1/geo/within-radiusReturns all entities within a specified radius of a center point. Distance calculated using Haversine formula. Results include distance from center.
/api/v1/geo/within-polygonReturns all entities with locations inside a GeoJSON polygon. Supports complex shapes with holes. Useful for jurisdiction-based filtering.
/api/v1/geo/clustersReturns clustered location data optimized for map display at different zoom levels. Uses spatial clustering algorithms to aggregate nearby points.
/api/v1/geo/heatmapReturns density data for heatmap visualization. Aggregates entity locations into grid cells with count and weighted values. Configurable grid resolution.
/api/v1/geo/routeCalculates optimal route between locations considering real-world road networks. Returns polyline geometry, distance, estimated duration, and turn-by-turn directions.
/api/v1/geo/timeline/{entity_id}Returns chronological location history for an entity. Shows movement patterns over time. Useful for tracking investigations and pattern analysis.
/api/v1/geo/geocodeConverts a text address into geographic coordinates. Returns multiple candidates with confidence scores. Supports international addresses in multiple languages.
/api/v1/geo/reverse-geocodeConverts coordinates into a human-readable address. Returns structured address components (street, city, country) and place name at various precision levels.
Create customizable dashboards with charts, maps, metrics, and shared team views.
/api/v1/dashboardsCreates a new dashboard with title, description, and layout configuration. Dashboards can be personal or shared with teams. Returns dashboard ID for adding panels.
/api/v1/dashboards/{dashboard_id}Returns dashboard configuration including all panels, layout, filters, and refresh settings. Optionally includes pre-calculated panel data for immediate rendering.
/api/v1/dashboards/{dashboard_id}Updates dashboard metadata or layout configuration. Supports panel reordering and resize. Triggers refresh for affected panels.
/api/v1/dashboards/{dashboard_id}Deletes a dashboard and all its panels. Shared dashboards require owner permission to delete. Starred dashboards show warning before deletion.
/api/v1/dashboardsReturns all dashboards accessible to the user including owned, shared, and team dashboards. Supports filtering by type and favorites.
/api/v1/dashboards/{dashboard_id}/panelsAdds a new panel (chart, table, metric, map) to a dashboard. Configures data source, query, visualization type, and position within layout.
/api/v1/dashboards/{dashboard_id}/panels/{panel_id}Updates panel configuration including query, visualization settings, and position. Changes trigger immediate data refresh.
/api/v1/dashboards/{dashboard_id}/panels/{panel_id}Removes a panel from a dashboard. Other panels automatically reflow to fill space based on layout mode.
/api/v1/dashboards/{dashboard_id}/shareShares a dashboard with specific users or teams. Configure view-only or edit permissions. Optionally generate public link for external sharing.
/api/v1/dashboards/{dashboard_id}/cloneCreates a copy of a dashboard with all panels. Useful for creating variations or personal copies of team dashboards.
Generate professional reports, court packages, and data exports in multiple formats.
/api/v1/reports/generateGenerates a report from a template or custom configuration. Supports multiple output formats (PDF, DOCX, HTML, XLSX). Returns report ID for status polling and download.
/api/v1/reports/{report_id}Returns report metadata including generation status, parameters used, and download links when complete. Large reports may take several minutes to generate.
/api/v1/reports/{report_id}/downloadDownloads a generated report file. Supports range requests for large files. Access is logged for audit compliance.
/api/v1/reportsReturns all reports generated by the user or team. Supports filtering by template, date range, and status. Includes generation metadata and file size.
/api/v1/reports/{report_id}Deletes a generated report file. Report metadata is retained for audit. Cannot delete reports marked for legal hold.
/api/v1/exports/case/{case_id}Exports a complete case package including all data, notes, attachments, and timeline. Supports redaction of sensitive fields. Returns download link when ready.
/api/v1/exports/investigation/{investigation_id}Exports an entire investigation with all cases, profiles, and evidence. Large investigations are processed asynchronously with progress notifications.
/api/v1/exports/court-packageGenerates a court-ready evidence package with proper chain of custody documentation, exhibit numbering, and legal formatting. Includes integrity certificates.
/api/v1/reports/templatesReturns available report templates including built-in and custom templates. Templates define layout, data sources, and configurable parameters.
/api/v1/reports/scheduleSchedules automatic report generation on a recurring basis (daily, weekly, monthly). Reports are delivered via email or saved to specified location.
Global full-text search, semantic search, and advanced query capabilities across all data.
/api/v1/searchFull-text search across all accessible data including profiles, cases, notes, and documents. Returns ranked results with highlighted matches and type indicators.
/api/v1/search/entitiesSearches specifically within entity profiles with advanced filtering by type, attributes, and relationships. Supports fuzzy matching for names.
/api/v1/search/documentsSearches within document content including PDFs, Word files, and processed images. Returns relevant excerpts with match highlighting.
/api/v1/search/advancedStructured search with complex boolean queries, field-specific filters, date ranges, and nested conditions. Supports saved queries for frequent searches.
/api/v1/search/semanticAI-powered semantic search that understands query intent. Finds conceptually related content even without exact keyword matches. Ideal for investigative queries.
/api/v1/search/suggestionsReturns autocomplete suggestions as user types. Includes recent searches, popular queries, and matching entity names for quick navigation.
/api/v1/search/historyReturns the user's recent search queries with timestamps. Supports clearing history or saving queries for reuse.
/api/v1/search/saveSaves a search query for quick access. Saved searches can be shared with team members. Optionally configure alerts when new results match.
Organize entities with tags for categorization, filtering, and cross-domain discovery.
/api/v1/tagsCreates a new tag with name, color, and optional description. Tags are scoped to the organization. Tag names must be unique within the organization.
/api/v1/tagsReturns all tags available in the organization with usage counts. Supports filtering by prefix for hierarchical tag structures.
/api/v1/tags/{tag_id}Updates tag properties including name, color, and description. Name changes are propagated to all tagged entities.
/api/v1/tags/{tag_id}Deletes a tag and removes it from all tagged entities. Cannot be undone. Consider merging into another tag instead.
/api/v1/tags/applyApplies one or more tags to an entity (case, profile, note, etc.). Supports bulk tagging of multiple entities. Duplicate tags are ignored.
/api/v1/tags/removeRemoves specified tags from an entity. Tag removal is logged for audit. Returns updated tag list for the entity.
/api/v1/tags/{tag_id}/entitiesReturns all entities with a specific tag. Supports filtering by entity type. Useful for finding related items across different domains.
Threaded comments with mentions, reactions, and real-time collaboration features.
/api/v1/commentsCreates a comment on any entity (case, task, profile, etc.). Supports @mentions for notifications and rich text formatting. Returns created comment with ID.
/api/v1/comments/{comment_id}Returns a single comment with metadata, replies, and reactions. Includes edit history if comment was modified.
/api/v1/comments/{comment_id}Updates comment content. Edit history is preserved. Only comment author or admins can edit. Notifications sent for @mention changes.
/api/v1/comments/{comment_id}Deletes a comment. Replies remain visible but show 'parent deleted'. Only author or admins can delete. Audit log preserved.
/api/v1/{entity_type}/{entity_id}/commentsReturns all comments for a specific entity. Supports threaded view with nested replies. Ordered by creation date with newest first by default.
/api/v1/comments/{comment_id}/replyCreates a threaded reply to an existing comment. Notifies parent comment author. Supports unlimited nesting depth.
/api/v1/comments/{comment_id}/reactAdds or removes a reaction emoji to a comment. Supports standard emoji set. Returns updated reaction counts.
Manage notifications across channels with customizable preferences and quiet hours.
/api/v1/notificationsReturns all notifications for the current user. Supports filtering by read status, type, and date range. Ordered by creation time, newest first.
/api/v1/notifications/unread-countReturns the count of unread notifications. Lightweight endpoint for badge display. Updates in real-time via WebSocket.
/api/v1/notifications/{notification_id}/readMarks a single notification as read. Returns 204 No Content on success. Already-read notifications are silently ignored.
/api/v1/notifications/mark-all-readMarks all notifications as read. Returns count of notifications updated. Useful for 'clear all' functionality.
/api/v1/notifications/{notification_id}Permanently deletes a notification. Cannot be undone. Consider marking as read instead for audit trail.
/api/v1/notifications/preferencesReturns user's notification preferences including enabled channels (email, push, in-app), frequency settings, and quiet hours configuration.
/api/v1/notifications/preferencesUpdates notification preferences. Configure which events trigger notifications and through which channels. Changes take effect immediately.
Team management with members, roles, permissions, and organizational hierarchies.
/api/v1/teamsCreates a new team with name, description, and initial members. Team creator becomes the default owner. Teams can be nested for organizational hierarchy.
/api/v1/teams/{team_id}Returns team details including members, roles, and statistics. Includes aggregate metrics for team workload and performance.
/api/v1/teams/{team_id}Updates team metadata including name, description, and settings. Only team owners or admins can modify team properties.
/api/v1/teams/{team_id}Deletes a team. Members are not deleted but lose team-based permissions. Cases and resources assigned to team must be reassigned first.
/api/v1/teamsReturns all teams the user can see. Includes teams they belong to and teams they manage. Supports filtering by parent team for hierarchy views.
/api/v1/teams/{team_id}/membersAdds a user to a team with specified role (member, lead, owner). User receives notification and gains team-based permissions immediately.
/api/v1/teams/{team_id}/members/{user_id}Removes a user from a team. User loses team-based permissions immediately. Cannot remove the last owner - transfer ownership first.
/api/v1/teams/{team_id}/members/{user_id}/roleChanges a team member's role within the team. Role changes affect permissions immediately. Audit logged for compliance.
Monitor entities against watchlists with automatic matching and alert generation.
/api/v1/watchlistsCreates a new watchlist with name, description, and matching criteria. Watchlists can monitor for specific entity types or attribute patterns.
/api/v1/watchlists/{watchlist_id}Returns watchlist configuration including entities, matching rules, and statistics. Shows recent match activity and alert settings.
/api/v1/watchlists/{watchlist_id}Updates watchlist configuration including name, rules, and notification settings. Changes to rules trigger reprocessing of recent data.
/api/v1/watchlists/{watchlist_id}Deletes a watchlist. Historical matches are preserved in audit log. Active alerts based on this watchlist are closed.
/api/v1/watchlistsReturns all watchlists accessible to the user. Includes personal watchlists and shared team watchlists. Shows match counts and last activity.
/api/v1/watchlists/{watchlist_id}/entitiesAdds a specific entity to a watchlist for monitoring. Optionally specify monitoring parameters and alert thresholds.
/api/v1/watchlists/{watchlist_id}/entities/{entity_id}Removes an entity from watchlist monitoring. Existing matches and alerts are preserved in history.
/api/v1/watchlists/{watchlist_id}/checkChecks if a given entity or data matches any criteria in the watchlist. Returns matching rules and similarity scores.
/api/v1/watchlists/batch-checkChecks multiple entities against all active watchlists in a single request. Efficient for bulk screening operations. Maximum 100 entities per request.
/api/v1/watchlists/{watchlist_id}/matchesReturns all matches for a watchlist with match details, timestamps, and disposition status. Supports filtering by date range and disposition.
Court-admissible evidence tracking with chain of custody, integrity verification, and sealing.
/api/v1/evidenceCreates a formal evidence record with chain of custody tracking. Computes cryptographic hash for integrity verification. Assigns unique evidence number.
/api/v1/evidence/{evidence_id}Returns evidence record with metadata, integrity status, and custody chain. Includes associated attachments and analysis results.
/api/v1/evidence/{evidence_id}Updates evidence metadata. Content modifications trigger new hash computation and custody record. Sealed evidence cannot be modified.
/api/v1/cases/{case_id}/evidenceReturns all evidence items for a case. Supports filtering by type, status, and date. Ordered by collection date by default.
/api/v1/evidence/{evidence_id}/custody-transferRecords a custody transfer from one custodian to another. Both parties must acknowledge transfer. Creates immutable custody record.
/api/v1/evidence/{evidence_id}/chain-of-custodyReturns complete chain of custody history for evidence item. Shows every custody event with timestamps, custodians, and purposes.
/api/v1/evidence/{evidence_id}/verify-integrityVerifies evidence integrity by recomputing hash and comparing to stored value. Returns verification result with detailed comparison.
/api/v1/evidence/{evidence_id}/sealSeals evidence item preventing further modifications. Generates digital seal certificate. Sealed evidence can only be copied, not modified.
/api/v1/evidence/{evidence_id}/audit-trailReturns complete audit trail for evidence including all access events, views, downloads, and analysis activities. Essential for court admissibility.
Query multiple intelligence providers for person, organization, phone, email, social, vehicle, domain, IP, and cryptocurrency intelligence.
/api/v1/osint/providersReturns all configured OSINT data providers with their capabilities, coverage areas, and current availability status.
/api/v1/osint/providers/{provider_id}/statusReturns detailed status for a specific intelligence provider including API health, quota usage, and recent performance metrics.
/api/v1/osint/search/personSearches across OSINT sources for information about a person. Accepts name, DOB, addresses, and identifiers. Aggregates results from multiple providers.
/api/v1/osint/search/organizationSearches for organization information including corporate records, officers, financial data, and regulatory filings across multiple databases.
/api/v1/osint/search/phoneReverse phone lookup across carrier databases, social platforms, and public records. Returns owner information, carrier details, and linked accounts.
/api/v1/osint/search/emailEmail intelligence lookup returning breach exposure, social accounts, and identity verification. Supports bulk email validation.
/api/v1/osint/search/socialSearches social media platforms for profiles matching criteria. Returns profile metadata, connections, and content samples where available.
/api/v1/osint/search/vehicleVehicle lookup by VIN, plate number, or description. Returns registration history, owner information, and incident records from available databases.
/api/v1/osint/search/domainDomain intelligence including WHOIS history, DNS records, SSL certificates, and hosting information. Identifies related domains and infrastructure.
/api/v1/osint/search/ipIP address intelligence including geolocation, ASN, reputation scores, and hosting details. Historical data available for tracking infrastructure changes.
/api/v1/osint/search/cryptoCryptocurrency address analysis including transaction history, cluster identification, and risk scoring. Supports Bitcoin, Ethereum, and major altcoins.
/api/v1/osint/batch-enrichEnriches multiple entities with OSINT data in a single request. Queues requests across providers respecting rate limits. Returns job ID for status polling.
/api/v1/osint/usageReturns OSINT query usage statistics for the organization including quota consumption by provider, remaining credits, and usage trends.
Reusable templates for cases, reports, and workflows to standardize processes.
/api/v1/templates/caseCreates a reusable case template with predefined tasks, checklists, fields, and workflow stages. Templates standardize investigation processes.
/api/v1/templates/caseReturns all case templates available to the organization. Includes built-in and custom templates with usage statistics.
/api/v1/templates/case/{template_id}Returns complete case template configuration including all sections, tasks, and workflow definitions.
/api/v1/templates/case/{template_id}Updates case template configuration. Changes do not affect existing cases created from the template.
/api/v1/templates/case/{template_id}Deletes a case template. Template must not be referenced by active workflows. Historical usage statistics are preserved.
/api/v1/templates/reportCreates a report template with layout, sections, data bindings, and formatting rules. Templates generate consistent professional reports.
/api/v1/templates/reportReturns all report templates including system templates and custom organization templates. Shows template categories and required parameters.
/api/v1/templates/workflowCreates an automation workflow template with triggers, conditions, and actions. Workflows automate repetitive investigation tasks.
/api/v1/templates/workflowReturns all workflow templates with execution statistics. Shows trigger conditions and action summaries.
Automated workflows with triggers, conditions, and actions for investigation automation.
/api/v1/workflowsCreates an automated workflow with defined triggers, conditions, and actions. Workflows execute automatically based on events or schedules.
/api/v1/workflows/{workflow_id}Returns workflow configuration including all steps, conditions, and execution history. Shows current status and performance metrics.
/api/v1/workflows/{workflow_id}Updates workflow configuration. Active workflows continue running current executions; new triggers use updated configuration.
/api/v1/workflows/{workflow_id}Deletes a workflow. Running executions complete but no new executions start. Execution history is preserved for audit.
/api/v1/workflowsReturns all workflows accessible to the user. Supports filtering by status, trigger type, and execution frequency.
/api/v1/workflows/{workflow_id}/executeManually triggers a workflow execution with provided input parameters. Returns execution ID for monitoring progress.
/api/v1/workflows/{workflow_id}/executionsReturns execution history for a workflow. Shows status, duration, and outputs for each run. Supports filtering by date and status.
/api/v1/workflows/{workflow_id}/pausePauses an active workflow. Running executions complete but new triggers are queued. Useful for maintenance or investigation.
/api/v1/workflows/{workflow_id}/resumeResumes a paused workflow. Queued triggers begin processing. Returns count of pending executions.
WebSocket-based real-time messaging and collaboration endpoints.
/api/v1/channelsCreates a real-time messaging channel for team collaboration. Channels can be linked to cases or investigations. Returns channel ID for WebSocket subscription.
/api/v1/channels/{channel_id}Returns channel details including members, recent activity, and configuration. Shows unread count for the requesting user.
/api/v1/channelsReturns all channels the user has access to. Includes direct messages, case channels, and team channels. Ordered by recent activity.
/api/v1/channels/{channel_id}/messagesSends a message to a channel. Supports text, mentions, and attachments. Messages are delivered in real-time via WebSocket to connected clients.
/api/v1/channels/{channel_id}/messagesReturns message history for a channel. Supports pagination for loading older messages. Includes reactions and reply counts.
/api/v1/channels/{channel_id}/membersAdds a user to a channel. User receives notification and can see message history from join time. Channel owners can add members.
/api/v1/channels/{channel_id}/members/{user_id}Removes a user from a channel. User loses access to channel and future messages. Historical messages remain visible to other members.
/api/v1/users/presenceReturns online/offline status and last activity time for specified users or all team members. Updates in real-time via WebSocket.
The primary GraphQL API (api.knogin.com/graphql) provides 100+ queries, 80+ mutations, and real-time subscriptions using the Strawberry GraphQL framework. GraphQL offers flexible data fetching, allowing clients to request exactly the data they need in a single request.
POST https://api.knogin.com/graphqlGET https://api.knogin.com/graphqlCreate, manage, and track investigations with full lifecycle support including team assignment, file management, and progress tracking.
getInvestigation(investigationId: ID!)getInvestigations(status: [Status], limit: Int, offset: Int)investigationTimeline(investigationId: ID!)investigationStatistics(investigationId: ID!)investigationTeam(investigationId: ID!)startNewInvestigation(input: CreateInvestigationInput!)updateInvestigation(investigationId: ID!, input: UpdateInvestigationInput!)deleteInvestigation(investigationId: ID!)addFilesToInvestigation(investigationId: ID!, fileIds: [ID!]!)assignInvestigationTeam(investigationId: ID!, userIds: [ID!]!)Full case management with templates, workflows, status tracking, profile linking, and bulk operations for efficient case handling.
case(caseId: ID!)cases(investigationId: ID, status: [CaseStatus], priority: [Priority], limit: Int, offset: Int)caseByNumber(caseNumber: String!)caseTimeline(caseId: ID!)caseStatistics(caseId: ID!)myCases(status: [CaseStatus], limit: Int)caseTemplates(category: String)createCase(input: CreateCaseInput!)createCaseFromTemplate(templateId: ID!, input: CreateCaseInput!)updateCase(caseId: ID!, input: UpdateCaseInput!)deleteCase(caseId: ID!)assignCase(caseId: ID!, userId: ID!)updateCaseStatus(caseId: ID!, status: CaseStatus!)linkProfileToCase(caseId: ID!, profileId: ID!, role: ProfileRole!)bulkUpdateCases(caseIds: [ID!]!, input: BulkUpdateCaseInput!)Task management with assignments, checklists, dependencies, and progress tracking for structured investigation workflows.
task(taskId: ID!)tasks(caseId: ID!, status: [TaskStatus], assignee: ID)myTasks(status: [TaskStatus], dueDate: DateRange)taskChecklist(taskId: ID!)taskDependencies(taskId: ID!)createTask(input: CreateTaskInput!)updateTask(taskId: ID!, input: UpdateTaskInput!)deleteTask(taskId: ID!)assignTask(taskId: ID!, userId: ID!)completeTask(taskId: ID!, notes: String)updateTaskChecklist(taskId: ID!, items: [ChecklistItemInput!]!)bulkUpdateTasks(taskIds: [ID!]!, input: BulkUpdateTaskInput!)Investigative notes with rich text, threading, and file attachments. Full chain of custody tracking for evidence-grade files.
note(noteId: ID!)notes(caseId: ID!, type: NoteType, visibility: Visibility)attachment(attachmentId: ID!)attachments(caseId: ID!, fileType: String)attachmentChainOfCustody(attachmentId: ID!)createNote(input: CreateNoteInput!)updateNote(noteId: ID!, input: UpdateNoteInput!)deleteNote(noteId: ID!)replyToNote(parentNoteId: ID!, content: String!)createAttachment(input: CreateAttachmentInput!)deleteAttachment(attachmentId: ID!)reprocessAttachment(attachmentId: ID!)Entity profile management for persons, organizations, and other entities with OSINT enrichment and relationship mapping.
getProfile(profileId: ID!)listProfiles(type: ProfileType, tags: [String], limit: Int, offset: Int)searchProfiles(query: String!, filters: ProfileFilters)getPerson(personId: ID!)listPersons(filters: PersonFilters)getOrganization(orgId: ID!)listOrganizations(filters: OrgFilters)getEntity(entityId: ID!)searchEntities(query: String!, entityTypes: [EntityType])profileRelationships(profileId: ID!, depth: Int)createProfile(input: CreateProfileInput!)updateProfile(profileId: ID!, input: UpdateProfileInput!)deleteProfile(profileId: ID!)enrichProfile(profileId: ID!, providers: [String])batchEnrichProfiles(profileIds: [ID!]!, providers: [String])linkProfiles(sourceId: ID!, targetId: ID!, relationType: String!)unlinkProfiles(sourceId: ID!, targetId: ID!)mergeProfiles(sourceIds: [ID!]!, targetId: ID!)Real-time alerting system with configurable monitors, severity levels, and decision workflows for threat detection.
getAlertById(alertId: ID!)listAlerts(severity: [Severity], status: [AlertStatus], limit: Int)alertsByMonitor(monitorId: ID!, dateRange: DateRange)alertStatistics(dateRange: DateRange)getMonitor(monitorId: ID!)listMonitors(status: MonitorStatus, type: MonitorType)monitorPerformance(monitorId: ID!)createAlert(input: CreateAlertInput!)updateAlert(alertId: ID!, input: UpdateAlertInput!)decideAlert(alertId: ID!, decision: AlertDecision!, notes: String)bulkDecideAlerts(alertIds: [ID!]!, decision: AlertDecision!)createMonitor(input: CreateMonitorInput!)updateMonitor(monitorId: ID!, input: UpdateMonitorInput!)deleteMonitor(monitorId: ID!)pauseMonitor(monitorId: ID!)resumeMonitor(monitorId: ID!)Knowledge graph operations including pathfinding, centrality analysis, community detection, and link prediction for network intelligence.
graphNode(nodeId: ID!)graphNeighbors(nodeId: ID!, depth: Int, relationTypes: [String])findPath(sourceId: ID!, targetId: ID!, maxDepth: Int)shortestPath(sourceId: ID!, targetId: ID!)subgraph(seedIds: [ID!]!, depth: Int)graphStatistics(investigationId: ID)centrality(nodeIds: [ID!]!, algorithm: CentralityAlgorithm)communities(investigationId: ID!, algorithm: CommunityAlgorithm)linkPrediction(nodeId: ID!, limit: Int)createGraphNode(input: CreateNodeInput!)updateGraphNode(nodeId: ID!, input: UpdateNodeInput!)deleteGraphNode(nodeId: ID!)createGraphEdge(input: CreateEdgeInput!)updateGraphEdge(edgeId: ID!, input: UpdateEdgeInput!)deleteGraphEdge(edgeId: ID!)mergeNodes(sourceIds: [ID!]!, targetId: ID!)Location-based queries, clustering, heatmaps, geofencing, and timeline analysis for geographic intelligence operations.
getLocation(locationId: ID!)listLocations(bounds: BoundingBox, entityType: EntityType)entitiesWithinBounds(bounds: BoundingBox!, filters: GeoFilters)entitiesWithinRadius(center: LatLng!, radiusKm: Float!)entitiesWithinPolygon(polygon: GeoJSONPolygon!)locationClusters(bounds: BoundingBox!, zoomLevel: Int!)heatmapData(bounds: BoundingBox!, resolution: Int)locationTimeline(entityId: ID!, dateRange: DateRange)geocode(address: String!)reverseGeocode(coordinates: LatLng!)createLocation(input: CreateLocationInput!)updateLocation(locationId: ID!, input: UpdateLocationInput!)deleteLocation(locationId: ID!)linkLocationToEntity(locationId: ID!, entityId: ID!)createGeofence(input: CreateGeofenceInput!)updateGeofence(geofenceId: ID!, input: UpdateGeofenceInput!)Create and manage customizable dashboards with panels, charts, and real-time metrics for operational awareness.
getDashboard(dashboardId: ID!)listDashboards(type: DashboardType, shared: Boolean)getDashboardMetrics(dashboardId: ID!)panelData(panelId: ID!, dateRange: DateRange)dashboardTemplates(category: String)createDashboard(input: CreateDashboardInput!)updateDashboard(dashboardId: ID!, input: UpdateDashboardInput!)deleteDashboard(dashboardId: ID!)addPanelToDashboard(dashboardId: ID!, input: PanelInput!)updatePanel(panelId: ID!, input: UpdatePanelInput!)deletePanel(panelId: ID!)shareDashboard(dashboardId: ID!, userIds: [ID!]!)cloneDashboard(dashboardId: ID!, newName: String!)Global search with semantic capabilities, advanced filters, and saved queries for rapid intelligence discovery.
globalSearch(query: String!, limit: Int, offset: Int)semanticSearch(query: String!, entityTypes: [EntityType])advancedSearch(input: AdvancedSearchInput!)searchSuggestions(prefix: String!, limit: Int)searchHistory(limit: Int)savedSearchessaveSearch(input: SaveSearchInput!)deleteSavedSearch(searchId: ID!)clearSearchHistoryCourt-admissible evidence tracking with chain of custody, integrity verification, and sealing for legal proceedings.
evidence(evidenceId: ID!)evidenceByCase(caseId: ID!, type: EvidenceType)evidenceChainOfCustody(evidenceId: ID!)verifyEvidenceIntegrity(evidenceId: ID!)evidenceAuditTrail(evidenceId: ID!)createEvidence(input: CreateEvidenceInput!)updateEvidence(evidenceId: ID!, input: UpdateEvidenceInput!)recordCustodyTransfer(evidenceId: ID!, input: CustodyTransferInput!)sealEvidence(evidenceId: ID!)linkEvidenceToCase(evidenceId: ID!, caseId: ID!)Open source intelligence queries across multiple providers for person, organization, phone, email, social media, vehicle, domain, IP, and cryptocurrency data.
osintProvidersosintProviderStatus(providerId: ID!)osintUsage(dateRange: DateRange)searchPerson(input: PersonSearchInput!)searchOrganization(input: OrgSearchInput!)searchPhone(phoneNumber: String!, providers: [String])searchEmail(email: String!, providers: [String])searchSocialMedia(input: SocialSearchInput!)searchVehicle(input: VehicleSearchInput!)searchDomain(domain: String!)searchIP(ipAddress: String!)searchCrypto(address: String!, blockchain: String!)batchEnrich(entityIds: [ID!]!, providers: [String])Team management with member roles, permissions, and hierarchies for collaborative investigation operations.
team(teamId: ID!)teams(parentId: ID)teamMembers(teamId: ID!)myTeamsuser(userId: ID!)users(role: Role, status: UserStatus)currentUsercreateTeam(input: CreateTeamInput!)updateTeam(teamId: ID!, input: UpdateTeamInput!)deleteTeam(teamId: ID!)addTeamMember(teamId: ID!, userId: ID!, role: TeamRole!)removeTeamMember(teamId: ID!, userId: ID!)updateTeamMemberRole(teamId: ID!, userId: ID!, role: TeamRole!)Automated workflows with triggers, conditions, and actions for streamlined investigation processes.
workflow(workflowId: ID!)workflows(status: WorkflowStatus, trigger: TriggerType)workflowExecutions(workflowId: ID!, status: ExecutionStatus)workflowExecution(executionId: ID!)workflowTemplates(category: String)createWorkflow(input: CreateWorkflowInput!)updateWorkflow(workflowId: ID!, input: UpdateWorkflowInput!)deleteWorkflow(workflowId: ID!)executeWorkflow(workflowId: ID!, input: JSON)pauseWorkflow(workflowId: ID!)resumeWorkflow(workflowId: ID!)cancelExecution(executionId: ID!)AI-powered text analysis, entity extraction, summarization, translation, and document processing capabilities.
aiProcessingStatus(jobId: ID!)aiProcessingHistory(entityId: ID!)aiCapabilitiesanalyzeText(text: String!, options: AnalysisOptions)extractEntities(text: String!, entityTypes: [EntityType])generateSummary(text: String!, style: SummaryStyle)translateText(text: String!, targetLanguage: String!)generateGraph(text: String!)processDocument(fileId: ID!, options: ProcessingOptions)processImage(fileId: ID!, options: ImageProcessingOptions)processAudio(fileId: ID!, options: AudioProcessingOptions)processVideo(fileId: ID!, options: VideoProcessingOptions)Real-time notifications with preferences, threaded comments, mentions, and reactions for team collaboration.
notifications(status: NotificationStatus, limit: Int)unreadNotificationCountnotificationPreferencescomments(entityId: ID!, entityType: EntityType)comment(commentId: ID!)markNotificationRead(notificationId: ID!)markAllNotificationsReadupdateNotificationPreferences(input: NotificationPreferencesInput!)createComment(input: CreateCommentInput!)updateComment(commentId: ID!, content: String!)deleteComment(commentId: ID!)replyToComment(parentId: ID!, content: String!)reactToComment(commentId: ID!, reaction: String!)Subscribe to real-time updates via WebSocket for live data streaming across all domains.
alertStreamalertUpdates(alertId: ID!)monitorAlerts(monitorId: ID!)investigationProgress(investigationId: ID!)caseUpdates(caseId: ID!)taskUpdates(caseId: ID!)dashboardUpdates(dashboardId: ID!)panelData(panelId: ID!)metricsStream(dashboardId: ID!)channelMessages(channelId: ID!)userPresence(userIds: [ID!]!)typingIndicator(channelId: ID!)processingProgress(jobId: ID!)enrichmentProgress(profileId: ID!)workflowExecution(executionId: ID!)notificationStreammentionStreamsystemAnnouncementsquery GetInvestigationWithCases($investigationId: ID!) {
getInvestigation(investigationId: $investigationId) {
id
title
status
createdAt
profiles {
id
name
type
riskScore
}
}
cases(investigationId: $investigationId) {
id
title
status
priority
assignedTo {
id
displayName
}
tasks {
id
title
status
dueDate
}
}
}mutation CreateAlert($input: CreateAlertInput!) {
createAlert(input: $input) {
id
title
severity
confidence
createdAt
entities {
id
name
type
}
}
}
# Variables
{
"input": {
"title": "Suspicious Activity Detected",
"summary": "Multiple failed login attempts from unusual location",
"severity": "HIGH",
"confidence": 0.85,
"entities": ["entity-123"],
"monitorId": "monitor-456"
}
}Real-time communication via WebSocket for live updates, GraphQL subscriptions, and collaboration features.
wss://api.knogin.com/graphqlWebSocket endpoint for GraphQL subscriptions using the graphql-ws protocol. Supports all subscription operations including alert streams, investigation updates, and real-time collaboration.
wss://api.knogin.com/wsWebSocket endpoint for general real-time event streaming including investigation updates, system notifications, and user presence. Supports channel-based subscriptions.
subscription AlertStream {
alertStream {
id
title
severity
confidence
createdAt
entities {
id
name
}
locations {
latitude
longitude
}
}
}Standard response structures used across the API.
{
"success": true,
"data": { ... },
"message": "Operation completed successfully",
"timestamp": "2024-01-15T10:30:00Z",
"request_id": "req_abc123"
}{
"error": "VALIDATION_ERROR",
"message": "Invalid input parameters",
"code": "ERR_VALIDATION_001",
"details": {
"field": "email",
"reason": "Invalid email format"
},
"timestamp": "2024-01-15T10:30:00Z"
}Common status codes returned by the API.
API rate limits to ensure fair usage and system stability.