Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Kismetkanceled/geniehelper/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The Credentials API provides secure, server-side encryption for sensitive creator credentials (API keys, passwords, session cookies). All encryption uses AES-256-GCM with keys that never leave the server. Key Features:- Server-side encryption (clients never handle encryption keys)
- Multiple credential types: platform connections, download credentials, session cookies
- Directus JWT authentication for user-facing endpoints
- Shared secret authentication for server-to-server operations
Endpoint Categories
1. Platform Connections
User-facing endpoints for managing creator platform credentials (Instagram, TikTok, etc.)2. Download Credentials
YouTube-DL/yt-dlp compatible credentials (passwords, Netscape cookies)3. Platform Sessions
Browser extension cookie capture for HITL (Human-in-the-Loop) authenticationPlatform Connections
POST /api/credentials/create-profile
Create or update a creator profile with encrypted credentials. Authentication: Directus JWT (Bearer token)Platform identifier (e.g.,
instagram, tiktok, youtube)Creator’s username on the platform (optional)
Platform-specific credentials object (will be encrypted server-side)Example for Instagram:
Operation success status
UUID of the created/updated
platform_connections recordtrue if existing connection was updated, false if new record createdPOST /api/credentials/update-profile-creds
Update encrypted credentials on an existing creator profile the user owns. Authentication: Directus JWT (Bearer token)UUID of the
platform_connections record to updateNew credentials object (replaces existing encrypted data)
Update the platform username (optional)
Server-to-Server Endpoints
POST /api/credentials/store
Encrypt and save credentials to Directusplatform_connections table.
Authentication: X-RBAC-SYNC-SECRET header
UUID of the
platform_connections recordCredentials object to encrypt and store
POST /api/credentials/reveal
Decrypt and return credentials for a creator profile. Authentication:X-RBAC-SYNC-SECRET header
UUID of the
platform_connections recordOperation success status
UUID of the profile
Decrypted credentials object
Download Credentials (yt-dlp)
POST /api/credentials/create-download-cred
Create credentials for yt-dlp/youtube-dl authentication (password or cookies). Authentication: Directus JWT (Bearer token)Platform identifier (e.g.,
youtube, instagram)UUID of the associated
platform_connections recordEither
password or cookiesPlatform username (optional for cookies auth)
For For
password auth:cookies auth:Human-readable name for this credential set (optional)
POST /api/credentials/reveal-download-cred
Decrypt download credentials (server-to-server only). Authentication:X-RBAC-SYNC-SECRET header
UUID of the
download_credentials recordPlatform Sessions (Cookie Capture)
POST /api/credentials/store-platform-session
Store browser cookies captured via extension (HITL authentication). Authentication: Directus JWT (Bearer token)UUID of the
platform_connections recordPlatform identifier (e.g.,
instagram, tiktok)Array of browser cookie objects:
Browser user agent string (optional)
ISO 8601 expiry timestamp (optional)
POST /api/credentials/get-platform-session
Retrieve decrypted session cookies (server-to-server only). Authentication:X-RBAC-SYNC-SECRET header
UUID of the
platform_connections recordPlatform identifier
POST /api/credentials/revoke-platform-session
Mark a platform session as revoked (disables cookie usage). Authentication: Directus JWT (Bearer token)UUID of the
platform_sessions recordEncryption Details
All credential encryption uses theencryptJSON() and decryptJSON() utilities (server/utils/credentialsCrypto.js):
- Algorithm: AES-256-GCM
- Key derivation: Server-side environment variable (never exposed)
- IV: Randomly generated per encryption operation
- Output format: Base64-encoded
iv:authTag:ciphertext
- Encryption keys never leave the server
- Clients never handle plaintext encryption keys
- Each credential has unique IV (no key reuse)
- Authentication tags prevent tampering
