{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-gpt-discord","slug":"gpt-discord","name":"GPT Discord","type":"agent","url":"https://github.com/Kav-K/GPTDiscord","page_url":"https://unfragile.ai/gpt-discord","categories":["chatbots-assistants"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-gpt-discord__cap_0","uri":"capability://text.generation.language.discord.native.conversational.ai.with.multi.turn.context.management","name":"discord-native conversational ai with multi-turn context management","description":"Integrates OpenAI's GPT models directly into Discord's message interface using discord.py's event handlers and cog architecture. Maintains per-user and per-channel conversation histories in memory or persistent storage, automatically handling Discord's message length limits (2000 chars) by splitting long responses across multiple messages. Uses a conversation state machine to track context across turns, enabling coherent multi-message exchanges within Discord's native threading and reply system.","intents":["I want users to chat with GPT directly in Discord without leaving the platform","I need conversation history preserved across sessions so context isn't lost","I want to support both DM and channel-based conversations with separate context","I need the bot to handle Discord's 2000-character message limit transparently"],"best_for":["Discord server administrators building AI-powered communities","Teams using Discord as primary communication hub wanting integrated AI","Developers building Discord bots that need stateful LLM interactions"],"limitations":["Context window limited by OpenAI API token limits (4k-128k depending on model), not Discord storage","Conversation history stored in-memory by default; requires external DB for persistence across bot restarts","No built-in conversation pruning — long histories can exceed token budgets without manual cleanup","Discord rate limiting (5 messages/5 seconds per channel) can cause response queuing delays"],"requires":["Discord bot token with MESSAGE_CONTENT intent enabled","OpenAI API key with GPT-3.5-turbo or GPT-4 access","Python 3.8+","discord.py library (2.0+)","Active Discord server with bot invited and permissions granted"],"input_types":["text (Discord messages)","image (via Discord attachments, passed to vision-capable models)","code snippets (as text in messages)"],"output_types":["text (Discord messages, split across multiple if >2000 chars)","formatted markdown (code blocks, bold, italics supported)"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_1","uri":"capability://image.visual.dall.e.image.generation.with.discord.attachment.handling","name":"dall-e image generation with discord attachment handling","description":"Wraps OpenAI's DALL-E API (DrawDallEService cog) to generate images from text prompts within Discord. Handles image size/quality parameters, downloads generated images, and uploads them as Discord attachments with automatic fallback to URL embeds if upload fails. Supports prompt engineering via system instructions and integrates with the conversation context to generate images based on prior discussion.","intents":["I want users to generate images from text prompts without leaving Discord","I need to support multiple image sizes and quality settings","I want generated images embedded directly in Discord messages, not just linked","I need to track image generation costs and usage per user"],"best_for":["Creative communities (design, art, gaming) using Discord","Content creators needing quick image generation in workflow","Teams prototyping visual content ideas in real-time"],"limitations":["DALL-E API costs ~$0.04-0.10 per image depending on resolution; no built-in cost controls or quotas","Image generation latency 10-60 seconds; Discord interaction timeout (3 seconds) requires deferred responses","No image editing/inpainting — only text-to-image generation","Generated images stored temporarily; no persistent gallery or history within Discord"],"requires":["OpenAI API key with DALL-E 3 access","Discord bot permissions: SEND_MESSAGES, ATTACH_FILES, EMBED_LINKS","Sufficient OpenAI credits for image generation costs"],"input_types":["text (image prompt)","optional parameters (size: 1024x1024, 1792x1024, 1024x1792; quality: standard/hd)"],"output_types":["image (PNG/JPEG, uploaded as Discord attachment or embedded URL)","metadata (generation timestamp, model version, cost)"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_10","uri":"capability://automation.workflow.asynchronous.command.processing.with.deferred.responses.and.long.running.task.handling","name":"asynchronous command processing with deferred responses and long-running task handling","description":"Uses discord.py's interaction deferral mechanism to handle long-running operations (image generation, web search, code execution) without triggering Discord's 3-second interaction timeout. Defers the interaction immediately, then edits the response once the operation completes. Supports background task queuing for operations that exceed Discord's timeout window, with status updates via message edits or follow-up messages. Implements exponential backoff for API retries and graceful error handling.","intents":["I want to run long-running operations (image generation, search) without timing out","I need to provide status updates while operations are in progress","I want to queue multiple requests and process them asynchronously","I need graceful error handling and retry logic for flaky APIs"],"best_for":["Bots with heavy API usage (image generation, web search, code execution)","High-traffic Discord bots needing to handle many concurrent requests","Teams needing reliable async task processing in Discord"],"limitations":["Deferred responses must be edited within 15 minutes; operations exceeding this timeout will fail","No persistent task queue; tasks lost if bot restarts before completion","Concurrent request limits depend on Discord API rate limits; no built-in request queuing","Status updates via message edits are limited to 10 edits per 10 seconds; frequent updates will be rate-limited","Error messages may not reach user if interaction expires before error occurs"],"requires":["discord.py 2.0+ with interaction deferral support","Async/await Python runtime (Python 3.8+)","Optional: external task queue (Celery, RQ) for persistent task storage"],"input_types":["Discord interaction (slash command or button click)"],"output_types":["deferred response (initial acknowledgment)","edited response (final result after operation completes)","follow-up messages (status updates during operation)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_11","uri":"capability://automation.workflow.configuration.management.with.environment.variables.and.per.server.settings","name":"configuration management with environment variables and per-server settings","description":"Centralizes bot configuration via environment variables (API keys, Discord token, database URLs) and per-server settings stored in Discord (via guild-specific configuration channels or database). Supports feature flags to enable/disable capabilities per server, custom system prompts per channel, and role-based feature access. Uses Python's dotenv for local development and environment-based configuration for production deployment. Implements configuration validation and defaults for missing settings.","intents":["I want to configure the bot without modifying code or restarting","I need different settings for different Discord servers","I want to enable/disable features per server or channel","I need to manage API keys and secrets securely"],"best_for":["Multi-server bot deployments with varying requirements","Teams wanting to customize bot behavior per server without code changes","Organizations with strict security requirements for API key management"],"limitations":["Environment variables not encrypted; secrets visible in process environment","Per-server settings require database or Discord storage; no built-in persistence","Configuration changes require bot restart or manual reload; no hot-reloading","No configuration validation UI; requires manual editing of config files or environment variables","No audit trail of configuration changes; difficult to track who changed what and when"],"requires":["Environment variables set (DISCORD_TOKEN, OPENAI_API_KEY, etc.)","Optional: .env file for local development","Optional: database for per-server configuration storage"],"input_types":["environment variables","configuration files (.env, JSON, YAML)","Discord guild/channel metadata"],"output_types":["validated configuration object","feature flags (enabled/disabled per server)","custom settings (system prompts, model preferences, etc.)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_2","uri":"capability://memory.knowledge.vector.based.document.indexing.and.semantic.search.with.custom.knowledge.bases","name":"vector-based document indexing and semantic search with custom knowledge bases","description":"IndexService cog creates embeddings from documents (PDFs, websites, text) using OpenAI's embedding API, stores them in Pinecone or Qdrant vector databases, and enables semantic search via cosine similarity. Supports bulk indexing of websites via web scraping, document chunking with configurable overlap, and namespace isolation per user/server. Integrates with conversation context to inject relevant document snippets as RAG (Retrieval-Augmented Generation) context before sending queries to GPT.","intents":["I want to build a custom knowledge base from my documents and search it semantically","I need to index entire websites and retrieve relevant sections in conversations","I want different users/servers to have isolated knowledge bases without cross-contamination","I need the bot to automatically cite sources when answering from indexed documents"],"best_for":["Organizations building internal knowledge bases (docs, FAQs, policies) accessible via Discord","Research teams needing semantic search over papers and documents","Customer support teams using Discord with indexed knowledge base for faster responses"],"limitations":["Embedding costs scale with document volume (~$0.02 per 1M tokens); no built-in cost monitoring","Vector DB query latency adds 200-500ms per search; no local caching of frequent queries","Document chunking strategy (fixed size, sliding window) can split semantic units; no intelligent semantic chunking","Pinecone/Qdrant require external subscription; no free local alternative integrated","No automatic document refresh — indexed content becomes stale without manual re-indexing"],"requires":["OpenAI API key with embeddings model access (text-embedding-3-small or -large)","Pinecone API key OR Qdrant instance (self-hosted or cloud)","Document sources (PDFs, URLs, or plain text)","Python 3.8+ with vector DB client libraries"],"input_types":["text (documents, URLs, or raw text)","PDF files (via document upload or URL)","website URLs (via web scraper)"],"output_types":["vector embeddings (stored in Pinecone/Qdrant)","search results (ranked by cosine similarity, with source metadata)","augmented prompts (document snippets injected into GPT context)"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_3","uri":"capability://search.retrieval.web.search.and.internet.connected.research.with.real.time.information.retrieval","name":"web search and internet-connected research with real-time information retrieval","description":"SearchService cog integrates web search APIs (Google Custom Search, Bing, or similar) to fetch real-time information from the internet. Parses search results, extracts relevant snippets, and injects them into GPT context as grounding data. Supports follow-up searches based on conversation context and caches results to reduce API calls. Enables the bot to answer questions about current events, recent news, and real-time data that would be outside its training data cutoff.","intents":["I want the bot to answer questions about current events and recent news","I need real-time information (stock prices, weather, sports scores) in conversations","I want the bot to search the web when it doesn't have knowledge in its training data","I need to verify facts by searching the web and citing sources"],"best_for":["News and research-focused Discord communities","Teams needing real-time market or weather data in Discord","Communities where up-to-date information is critical (crypto, sports, finance)"],"limitations":["Web search API costs scale with queries (~$0.01-0.10 per search depending on provider); no built-in rate limiting","Search result quality depends on API provider; no control over ranking or filtering","Latency 1-3 seconds per search; can slow down conversation flow if searches are frequent","No automatic fact-checking of search results; bot may cite misinformation if present in search results","Search result caching is in-memory; no persistent cache across bot restarts"],"requires":["Web search API key (Google Custom Search, Bing Search, or alternative)","API quota sufficient for expected search volume","Internet connectivity for bot instance"],"input_types":["text (search query, extracted from conversation context or user command)"],"output_types":["search results (ranked list with titles, snippets, URLs)","augmented prompts (search snippets injected into GPT context)","source citations (URLs and domains of search results)"],"categories":["search-retrieval","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_4","uri":"capability://code.generation.editing.code.execution.and.interpretation.in.isolated.sandboxes","name":"code execution and interpretation in isolated sandboxes","description":"CodeInterpreterService cog executes Python code in isolated environments (using exec() with restricted globals/locals or containerized execution) and returns stdout/stderr output. Supports multi-line code blocks, variable persistence across code cells within a session, and visualization output (matplotlib, plotly). Integrates with conversation context to execute code snippets discussed in chat and display results inline.","intents":["I want users to run Python code snippets directly in Discord without external tools","I need to execute data analysis or visualization code and display results in Discord","I want to support interactive coding sessions where variables persist across code blocks","I need to safely sandbox code execution to prevent malicious scripts from affecting the bot"],"best_for":["Data science and ML communities using Discord for collaboration","Educational servers teaching Python or data analysis","Teams needing quick code execution without leaving Discord"],"limitations":["Execution timeout typically 10-30 seconds; long-running code will be killed","No file system access or external library installation; limited to pre-installed packages","Memory limits per execution (typically 256MB-1GB); large data processing will fail","Visualization output requires conversion to images for Discord display; adds latency","No persistent state between separate code execution requests unless explicitly stored"],"requires":["Python 3.8+ runtime on bot instance","Optional: Docker or containerization for stricter sandboxing","Pre-installed Python packages (numpy, pandas, matplotlib, etc.) for data science use cases"],"input_types":["Python code (single-line or multi-line blocks)","optional input data (as variables in conversation context)"],"output_types":["text (stdout/stderr output)","images (matplotlib/plotly visualizations, converted to PNG/SVG)","structured data (JSON, CSV, or other formats printed to stdout)"],"categories":["code-generation-editing","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_5","uri":"capability://text.generation.language.multi.language.translation.with.context.aware.terminology","name":"multi-language translation with context-aware terminology","description":"TranslationService cog uses DeepL, Google Translate, or OpenAI's translation capabilities to translate text between 100+ language pairs. Supports bulk translation of conversation history, maintains glossaries for domain-specific terminology, and preserves formatting (code blocks, mentions, emojis). Integrates with conversation context to translate previous messages or entire threads, enabling cross-language communication in multilingual Discord servers.","intents":["I want to translate messages between users who speak different languages","I need to translate entire conversation threads to make them accessible to non-native speakers","I want to maintain consistent terminology when translating technical or domain-specific content","I need to support real-time translation in multilingual Discord communities"],"best_for":["Multilingual Discord communities and international teams","Gaming guilds with players from different countries","Open-source projects with global contributors"],"limitations":["Translation quality varies by language pair and content type; technical jargon may be mistranslated","API costs scale with text volume (~$0.01-0.05 per 100k characters depending on provider)","Context-aware terminology requires manual glossary maintenance; no automatic learning from previous translations","Latency 500ms-2s per translation request; not suitable for real-time live conversation","Emoji and mention preservation requires custom parsing; may fail on complex formatting"],"requires":["Translation API key (DeepL, Google Translate, or OpenAI)","Optional: custom glossary file for domain-specific terminology"],"input_types":["text (single message or conversation thread)","optional target language specification"],"output_types":["translated text (preserving original formatting)","language detection (auto-detected source language)","confidence scores (for some providers)"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_6","uri":"capability://data.processing.analysis.audio.transcription.with.speaker.diarization.and.timestamp.alignment","name":"audio transcription with speaker diarization and timestamp alignment","description":"TranscribeService cog integrates OpenAI's Whisper API or similar speech-to-text services to transcribe audio files uploaded to Discord. Supports speaker diarization (identifying different speakers), timestamp alignment for long audio, and automatic language detection. Handles Discord audio file formats, downloads attachments, sends to transcription API, and returns timestamped transcripts with optional speaker labels. Integrates with conversation context to make transcripts searchable and indexable.","intents":["I want to transcribe voice messages and audio files shared in Discord","I need speaker identification in group conversations or meetings","I want to make audio content searchable by transcribing it","I need timestamped transcripts for reference and archival"],"best_for":["Teams using Discord for voice meetings and wanting transcripts","Podcast or audio content communities needing transcription","Accessibility-focused communities providing transcripts for deaf/hard-of-hearing users"],"limitations":["Transcription costs ~$0.006 per minute of audio; no built-in cost controls","Latency 10-60 seconds depending on audio length; not real-time","Speaker diarization accuracy varies; may fail with overlapping speech or poor audio quality","Audio file size limits (typically 25MB for Whisper API); long recordings must be split","No automatic punctuation or capitalization; output requires post-processing for readability"],"requires":["OpenAI API key with Whisper access","Audio file in supported format (MP3, WAV, M4A, FLAC, etc.)","Discord bot permissions: READ_MESSAGE_HISTORY, ATTACH_FILES"],"input_types":["audio files (MP3, WAV, M4A, FLAC, OGG, etc., up to 25MB)","optional language hint (for improved accuracy)"],"output_types":["text (transcribed content)","timestamps (per-sentence or per-speaker)","speaker labels (if diarization enabled)","language detection (detected language of audio)"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_7","uri":"capability://safety.moderation.content.moderation.with.configurable.safety.filters.and.policy.enforcement","name":"content moderation with configurable safety filters and policy enforcement","description":"ModerationsService cog uses OpenAI's Moderation API or custom ML models to flag potentially harmful content (hate speech, violence, sexual content, etc.) in Discord messages. Supports configurable severity thresholds, per-server policy customization, and action automation (delete, warn, mute, ban). Integrates with Discord's audit log and can trigger notifications to moderators. Maintains moderation statistics and can generate reports on policy violations.","intents":["I want to automatically flag and remove harmful content from my Discord server","I need to enforce community guidelines without manual moderation","I want to configure different moderation policies for different channels or user roles","I need moderation logs and reports for compliance and safety auditing"],"best_for":["Large Discord communities needing automated content moderation","Communities with strict safety policies (gaming guilds, educational servers)","Organizations requiring compliance with content policies"],"limitations":["Moderation API accuracy ~95%; false positives/negatives require human review","No context awareness — may flag legitimate discussion of sensitive topics","Latency 200-500ms per message; can slow down high-volume chat","No custom model training; limited to predefined categories (hate, violence, sexual, etc.)","Automated actions (delete, ban) can be overly aggressive; requires careful threshold tuning"],"requires":["OpenAI API key with Moderation API access","Discord bot permissions: MANAGE_MESSAGES, MANAGE_ROLES, BAN_MEMBERS (depending on actions)","Server configuration for moderation policies and thresholds"],"input_types":["text (Discord messages)","optional metadata (user role, channel, timestamp)"],"output_types":["moderation flags (category, severity score 0-1)","recommended actions (delete, warn, mute, ban)","audit logs (timestamp, user, content, action taken)"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_8","uri":"capability://text.generation.language.multi.model.support.with.dynamic.provider.switching.and.fallback","name":"multi-model support with dynamic provider switching and fallback","description":"Model abstraction layer supports multiple LLM providers (OpenAI GPT-3.5/4, Anthropic Claude, open-source models via Ollama) with dynamic switching based on cost, latency, or availability. Implements provider fallback logic — if OpenAI is rate-limited, automatically routes to Claude or local Ollama. Supports different model capabilities (vision, function calling, long context) and automatically selects appropriate model for task. Configuration-driven provider selection enables cost optimization without code changes.","intents":["I want to use multiple LLM providers to reduce costs and avoid single-provider lock-in","I need automatic fallback to alternative providers if one is rate-limited or unavailable","I want to use specialized models for different tasks (vision for images, long-context for documents)","I need to optimize costs by routing simple queries to cheaper models and complex queries to more capable ones"],"best_for":["Cost-conscious teams running high-volume Discord bots","Organizations wanting to avoid vendor lock-in with single LLM provider","Teams experimenting with different models and wanting easy switching"],"limitations":["Provider switching adds latency (100-200ms for fallback logic); not transparent to users","Different providers have different capabilities (function calling, vision, etc.); not all models support all features","Cost tracking across providers requires custom accounting; no built-in cost optimization","Prompt engineering may differ between providers; responses may vary in quality/style","Rate limits and quotas managed separately per provider; no unified rate limiting"],"requires":["API keys for at least one provider (OpenAI, Anthropic, etc.)","Optional: Ollama instance for local model fallback","Configuration file specifying provider preferences and fallback order"],"input_types":["text (prompts)","optional task type specification (chat, vision, code, etc.)"],"output_types":["text (model response)","metadata (provider used, latency, cost)"],"categories":["text-generation-language","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-gpt-discord__cap_9","uri":"capability://memory.knowledge.per.user.and.per.channel.conversation.isolation.with.role.based.access.control","name":"per-user and per-channel conversation isolation with role-based access control","description":"Implements conversation namespace isolation using Discord user IDs and channel IDs as keys, storing separate conversation histories and context for each user/channel combination. Integrates with Discord's role system to enforce access control — users can only access conversations they have permission to view. Supports shared conversation contexts for team channels while maintaining privacy for DMs. Uses Discord's permission system to determine visibility and edit rights.","intents":["I want to keep user conversations private and isolated from other users","I need different conversation contexts for different channels (support, general, dev, etc.)","I want to enforce role-based access so only certain users can see sensitive conversations","I need to support team conversations where multiple users share context"],"best_for":["Multi-user Discord servers needing privacy and access control","Organizations using Discord for internal communication with sensitive data","Support teams using Discord with per-ticket conversation isolation"],"limitations":["Conversation storage in-memory by default; no persistence across bot restarts without external DB","Role-based access control limited to Discord's native role system; no fine-grained custom permissions","No encryption at rest; conversations stored in plaintext in memory or database","Conversation history grows unbounded; no automatic pruning or archival","No audit trail of who accessed which conversations; limited compliance support"],"requires":["Discord bot permissions: READ_MESSAGE_HISTORY, MANAGE_ROLES","Optional: external database for persistent conversation storage","Server configuration specifying role-based access policies"],"input_types":["Discord user ID and channel ID (automatically extracted from message context)"],"output_types":["isolated conversation context (per user/channel)","access control decisions (allow/deny based on roles)"],"categories":["memory-knowledge","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":27,"verified":false,"data_access_risk":"high","permissions":["Discord bot token with MESSAGE_CONTENT intent enabled","OpenAI API key with GPT-3.5-turbo or GPT-4 access","Python 3.8+","discord.py library (2.0+)","Active Discord server with bot invited and permissions granted","OpenAI API key with DALL-E 3 access","Discord bot permissions: SEND_MESSAGES, ATTACH_FILES, EMBED_LINKS","Sufficient OpenAI credits for image generation costs","discord.py 2.0+ with interaction deferral support","Async/await Python runtime (Python 3.8+)"],"failure_modes":["Context window limited by OpenAI API token limits (4k-128k depending on model), not Discord storage","Conversation history stored in-memory by default; requires external DB for persistence across bot restarts","No built-in conversation pruning — long histories can exceed token budgets without manual cleanup","Discord rate limiting (5 messages/5 seconds per channel) can cause response queuing delays","DALL-E API costs ~$0.04-0.10 per image depending on resolution; no built-in cost controls or quotas","Image generation latency 10-60 seconds; Discord interaction timeout (3 seconds) requires deferred responses","No image editing/inpainting — only text-to-image generation","Generated images stored temporarily; no persistent gallery or history within Discord","Deferred responses must be edited within 15 minutes; operations exceeding this timeout will fail","No persistent task queue; tasks lost if bot restarts before completion","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.34,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:03.041Z","last_scraped_at":"2026-05-03T14:00:10.321Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=gpt-discord","compare_url":"https://unfragile.ai/compare?artifact=gpt-discord"}},"signature":"tWTS4/ixRom49zkavQApVdRi1pPdYF/8o7e19KhBvs3Wyd0ws3yxRfE8oDDz2grCSOAj4cPvnCY+HgmHY/sGDA==","signedAt":"2026-06-21T00:43:51.981Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/gpt-discord","artifact":"https://unfragile.ai/gpt-discord","verify":"https://unfragile.ai/api/v1/verify?slug=gpt-discord","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}