{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-samuraigpt--n8n-nodes-muapi","slug":"samuraigpt--n8n-nodes-muapi","name":"n8n-nodes-muapi","type":"workflow","url":"https://muapi.ai","page_url":"https://unfragile.ai/samuraigpt--n8n-nodes-muapi","categories":["automation"],"tags":["ai-nodes","ai-workflow","audio-generation","automation","flux","generative-ai","image-generation","image-to-video","midjourney","muapi","n8n","n8n-community-node","n8n-nodes","stable-diffusion","suno","text-to-image","text-to-video","typescript","video-generation","workflow-automation"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-samuraigpt--n8n-nodes-muapi__cap_0","uri":"capability://image.visual.multi.model.text.to.image.generation.with.unified.api.abstraction","name":"multi-model text-to-image generation with unified api abstraction","description":"Abstracts 15+ text-to-image models (FLUX, Midjourney V7, Stable Diffusion 3.5, DALL-E 3, etc.) behind a single n8n node interface, routing requests to MuAPI's backend which handles model-specific parameter mapping, authentication, and response normalization. Each model's unique prompt syntax and configuration requirements are encapsulated within MuAPI's adapter layer, allowing workflows to switch models without code changes.","intents":["I want to generate product mockups using different AI models and compare quality without rewriting workflow logic","I need to scale image generation across multiple models based on queue depth or cost optimization","I want to use Midjourney's style consistency in one workflow step and FLUX's speed in another without managing separate integrations"],"best_for":["automation engineers building multi-model image generation pipelines","agencies testing model outputs before committing to single-vendor solutions","teams needing cost arbitrage across model providers"],"limitations":["Model availability depends on MuAPI's upstream provider status — no fallback if a model goes offline","Prompt engineering best practices vary per model; node doesn't auto-translate prompts for model-specific syntax","Rate limiting is per-model at MuAPI level; no built-in queue management across models within n8n","Response times vary 5-120s depending on model; no timeout configuration exposed in node UI"],"requires":["n8n 0.200.0+","MuAPI API key with image generation credits","Network access to MuAPI endpoints","Workflow execution environment with 2GB+ memory for image processing"],"input_types":["text (prompt string)","string (model identifier: 'flux-pro', 'midjourney-v7', etc.)","number (width, height, seed)","object (model-specific parameters like guidance_scale, style_preset)"],"output_types":["image (base64-encoded or URL)","object (metadata: model used, generation time, seed, cost)","array (multiple variations if batch mode enabled)"],"categories":["image-visual","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_1","uri":"capability://image.visual.text.to.video.generation.with.model.specific.quality.speed.tradeoffs","name":"text-to-video generation with model-specific quality/speed tradeoffs","description":"Wraps 8+ text-to-video models (Veo 3, Kling, Runway, Pika) through MuAPI's unified interface, handling asynchronous job submission, polling for completion status, and video file retrieval. The node manages the async workflow internally — users specify prompt and model, and the node blocks until video is ready or timeout is reached, abstracting away webhook complexity.","intents":["I want to generate marketing videos from product descriptions without learning each model's API","I need to generate 50 short videos in parallel and wait for all to complete before proceeding","I want to compare Kling's motion quality vs Runway's editing capabilities in the same workflow"],"best_for":["content creators automating video production pipelines","marketing teams generating variations of promotional content","developers building video-as-a-service platforms on top of n8n"],"limitations":["Video generation is inherently slow (30s-5min per video); polling adds 1-2s latency per check cycle","No built-in video quality validation — output must be manually reviewed or piped to external QA","Model-specific constraints (max duration, resolution limits) not exposed in node; failures occur at MuAPI level","Webhook-based async handling not supported; polling-only approach doesn't scale beyond 10-20 concurrent jobs per workflow"],"requires":["n8n 0.200.0+","MuAPI API key with video generation credits (expensive — $0.50-$5 per video)","Workflow timeout configured to 10min+ (videos take 2-5min to generate)","Storage for video files (S3, local disk, or external CDN)"],"input_types":["text (prompt/description)","string (model: 'veo-3', 'kling', 'runway', 'pika')","number (duration in seconds, aspect ratio)","object (model-specific: motion intensity, camera movement style)"],"output_types":["string (video URL or base64)","object (metadata: duration, resolution, model, generation_time_ms, cost_credits)","file (MP4/WebM binary if stored locally)"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_10","uri":"capability://tool.use.integration.n8n.workflow.integration.with.native.node.ui.and.credential.management","name":"n8n workflow integration with native node ui and credential management","description":"Provides native n8n node implementations for all MuAPI models, with built-in UI for parameter configuration, credential management (API key storage), and workflow visualization. The node integrates with n8n's expression language for dynamic parameter values, supports conditional execution based on previous node outputs, and provides real-time validation of inputs.","intents":["I want to use MuAPI models in n8n without writing custom code or API calls","I need to securely store my MuAPI API key and reuse it across multiple workflows","I want to dynamically set generation parameters based on previous workflow steps"],"best_for":["n8n users building AI-powered automation without coding","teams managing multiple workflows with shared credentials","non-technical users designing content generation pipelines"],"limitations":["Node UI is fixed; advanced model parameters may not be exposed in the UI (requires JSON mode)","Credential management is n8n-specific; credentials don't transfer to other platforms","Expression language support is limited to n8n's syntax; no custom functions","Real-time validation only checks format, not semantic correctness (e.g., valid prompt syntax but nonsensical content)"],"requires":["n8n 0.200.0+","n8n-nodes-muapi plugin installed","MuAPI API key"],"input_types":["UI form inputs (text, number, select dropdowns)","n8n expressions ({{ $node.previous_step.data.prompt }})"],"output_types":["n8n workflow data (accessible to downstream nodes via {{ $node.muapi_node.data }})"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_11","uri":"capability://automation.workflow.cost.tracking.and.budget.management.with.per.workflow.limits","name":"cost tracking and budget management with per-workflow limits","description":"Tracks cumulative generation costs across workflow executions, aggregates costs by model and user, and enforces configurable budget limits (daily, monthly, per-workflow). The node logs all cost data to n8n's execution history and can trigger alerts or stop workflow execution when budgets are exceeded.","intents":["I want to track how much each workflow is spending on AI generation","I need to set a monthly budget and stop generating content if we exceed it","I want to see cost breakdowns by model to optimize which models we use"],"best_for":["teams with limited AI generation budgets","platforms charging end users for AI-generated content","cost-conscious organizations optimizing AI spending"],"limitations":["Cost tracking is approximate — actual charges depend on MuAPI's billing system","Budget enforcement is at workflow level; no cross-workflow budget pooling","Cost data is logged to n8n execution history; no built-in analytics dashboard","Budget limits are static; no dynamic adjustment based on usage patterns or seasonal demand"],"requires":["n8n 0.200.0+","MuAPI API key with cost tracking enabled","Budget limits configured (daily, monthly, per-workflow)"],"input_types":["number (daily_budget_usd, monthly_budget_usd, per_workflow_budget_usd)","boolean (stop_on_budget_exceeded)"],"output_types":["object (cost_summary: total_cost, cost_by_model, cost_by_user, budget_remaining)","boolean (budget_exceeded)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_2","uri":"capability://image.visual.image.to.video.transformation.with.motion.synthesis","name":"image-to-video transformation with motion synthesis","description":"Converts static images into videos by leveraging image-to-video models (Kling, Runway Gen-3, Veo 3) through MuAPI, applying motion synthesis, camera movement, and temporal consistency. The node accepts image input (URL or base64), optional motion prompts, and outputs video with synchronized motion applied to the source image.","intents":["I want to animate product photos into demo videos without manual video editing","I need to create cinematic camera pans across static architectural renderings","I want to batch-convert 100 product images into short promotional videos"],"best_for":["e-commerce platforms automating product video generation","real estate agents creating property walkthroughs from photos","content creators extending static asset libraries into video content"],"limitations":["Motion quality depends on image composition — poorly lit or flat images produce jerky motion","No control over motion direction/intensity in current node UI; limited to model defaults","Image resolution capped at 1024x1024 for most models; upscaling required for 4K output","Temporal consistency artifacts visible in 10-15% of outputs; no built-in quality filtering"],"requires":["n8n 0.200.0+","MuAPI API key with image-to-video credits","Input image in JPEG/PNG format, max 10MB","Workflow timeout 5-10min"],"input_types":["string (image URL)","string (base64-encoded image)","string (model: 'kling-i2v', 'runway-gen3', 'veo-3')","text (motion prompt: 'camera zoom in', 'pan left', etc.)","number (duration, FPS)"],"output_types":["string (video URL)","object (metadata: source_image_hash, motion_prompt_used, duration, model)","file (MP4 binary)"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_3","uri":"capability://text.generation.language.text.to.audio.generation.with.voice.synthesis.and.model.selection","name":"text-to-audio generation with voice synthesis and model selection","description":"Generates speech audio from text prompts using 5+ TTS/music generation models (Suno, ElevenLabs, Google Cloud TTS, OpenAI TTS) routed through MuAPI. The node handles model-specific voice selection, language/accent configuration, and audio format conversion, returning audio as URL or base64 with metadata (duration, sample rate, voice characteristics).","intents":["I want to generate voiceovers for video content in 20+ languages without managing multiple TTS APIs","I need to create background music tracks for videos using Suno AI within my workflow","I want to generate podcast episodes from blog posts with consistent voice across 100+ episodes"],"best_for":["content creators automating voiceover production","podcast networks generating audio from text at scale","video production teams adding narration to generated videos"],"limitations":["Voice quality varies significantly by model; Suno produces music but not speech, ElevenLabs produces speech but not music","Language support differs per model — no automatic fallback if requested language unavailable","Audio duration limits vary (Suno: 4min, ElevenLabs: 30min per request); no automatic chunking for longer content","Emotional tone/prosody control limited to model presets; fine-grained voice control requires model-specific APIs"],"requires":["n8n 0.200.0+","MuAPI API key with audio generation credits","Text input max 5000 characters (varies by model)","Audio storage (S3, local disk, or streaming URL)"],"input_types":["text (content to synthesize)","string (model: 'suno', 'elevenlabs', 'google-tts', 'openai-tts')","string (voice_id or voice_name)","string (language code: 'en', 'es', 'fr', etc.)","number (speech_rate, pitch)"],"output_types":["string (audio URL or base64)","object (metadata: duration_ms, sample_rate_hz, voice_used, language, model, cost)","file (MP3/WAV binary)"],"categories":["text-generation-language","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_4","uri":"capability://automation.workflow.batch.processing.with.model.aware.parallelization.and.cost.optimization","name":"batch processing with model-aware parallelization and cost optimization","description":"Enables batch generation of images, videos, or audio across multiple inputs with intelligent model selection based on cost/quality tradeoffs. The node accepts arrays of prompts, automatically distributes jobs across available models (e.g., FLUX for fast images, Midjourney for high-quality), and aggregates results with per-item cost tracking and performance metrics.","intents":["I want to generate 1000 product images using the cheapest model that meets quality thresholds","I need to process a batch of 50 videos, routing each to the fastest available model to minimize total time","I want to track per-item generation costs and model selection decisions for billing and optimization"],"best_for":["teams running large-scale content generation with cost constraints","platforms offering AI-powered content generation to end users","data teams generating synthetic datasets for ML training"],"limitations":["Batch size limited by MuAPI's queue depth and n8n's memory (typically 100-500 items per batch)","Model selection logic is static (cost-based or speed-based); no dynamic rebalancing if a model becomes unavailable mid-batch","No built-in retry logic for failed items; failures require manual resubmission","Cost tracking is approximate — actual charges depend on MuAPI's billing system, which may differ from node estimates"],"requires":["n8n 0.200.0+","MuAPI API key with sufficient credits for batch size","Input array with 10-500 items","Workflow timeout 30min+ for large batches"],"input_types":["array of objects (each with prompt, model_preference, quality_threshold)","string (optimization_strategy: 'cost', 'speed', 'quality')","number (max_parallel_jobs: 1-50)"],"output_types":["array of objects (each with generated_content, model_used, cost_credits, generation_time_ms, status)","object (batch_summary: total_cost, total_time, success_rate, model_distribution)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_5","uri":"capability://automation.workflow.workflow.native.error.handling.with.model.fallback.chains","name":"workflow-native error handling with model fallback chains","description":"Implements automatic fallback logic when a primary model fails or is unavailable, routing requests through a configurable chain of alternative models. The node catches MuAPI errors (rate limits, model downtime, quota exceeded) and transparently retries with the next model in the chain, returning results with fallback metadata indicating which model was ultimately used.","intents":["I want my workflow to continue even if Midjourney is down, automatically falling back to FLUX","I need to handle rate limiting gracefully by queuing requests and retrying with alternative models","I want to track which models failed and which succeeded for monitoring and optimization"],"best_for":["production workflows requiring high availability and fault tolerance","teams managing SLAs for AI-powered services","cost-conscious teams wanting to avoid expensive models when cheaper alternatives work"],"limitations":["Fallback chains are static; no dynamic reordering based on real-time model performance","Retry logic uses exponential backoff with fixed parameters; no tuning per model","Fallback metadata doesn't include reason for failure (rate limit vs. model error vs. timeout); debugging requires logs","No circuit breaker pattern — a consistently failing model won't be deprioritized until manually configured"],"requires":["n8n 0.200.0+","MuAPI API key","Fallback model chain configured in node (e.g., ['midjourney-v7', 'flux-pro', 'stable-diffusion-3.5'])"],"input_types":["text (prompt)","array of strings (fallback_model_chain)","number (max_retries: 1-5)","number (retry_delay_ms: 1000-30000)"],"output_types":["string or object (generated content)","object (metadata: primary_model_attempted, fallback_model_used, retry_count, error_reason)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_6","uri":"capability://automation.workflow.real.time.generation.status.polling.with.webhook.free.async.handling","name":"real-time generation status polling with webhook-free async handling","description":"Manages asynchronous generation jobs (especially for video/audio which take minutes) using internal polling loops that check MuAPI's job status API at configurable intervals. The node blocks the workflow step until completion or timeout, abstracting away webhook setup and external state management — users see synchronous behavior while the underlying implementation is async.","intents":["I want to generate a video and wait for it to complete without setting up webhooks","I need to poll job status every 5 seconds and fail gracefully if it takes longer than 10 minutes","I want to see progress updates (% complete) as the job runs without leaving the workflow"],"best_for":["teams without webhook infrastructure or external state stores","workflows where synchronous blocking is acceptable (not high-throughput APIs)","developers preferring simple polling over complex async patterns"],"limitations":["Polling adds 1-2s latency per check cycle; inefficient for jobs taking 30+ minutes","No exponential backoff — polling interval is fixed, wasting API calls on completed jobs","Workflow execution blocks during polling; can't do other work in parallel within the same step","No built-in timeout handling — workflows hang if job never completes (requires external timeout configuration)","Polling doesn't scale — 100 concurrent polling workflows will hammer MuAPI's status API"],"requires":["n8n 0.200.0+","MuAPI API key","Job ID from initial generation request","Workflow timeout configured (10min+ for videos)"],"input_types":["string (job_id from generation request)","number (poll_interval_ms: 1000-10000)","number (max_wait_time_ms: 60000-600000)"],"output_types":["object (job_status: 'pending', 'processing', 'completed', 'failed')","string or object (final result when completed)","object (metadata: total_wait_time_ms, poll_count, final_status)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_7","uri":"capability://text.generation.language.prompt.optimization.and.model.specific.syntax.translation","name":"prompt optimization and model-specific syntax translation","description":"Automatically translates generic prompts into model-specific syntax and applies optimization heuristics (keyword weighting, style tags, negative prompts) based on the target model. For example, converts a generic prompt into Midjourney's --ar, --niji, --style syntax, or FLUX's structured prompt format. The node includes built-in prompt templates and style libraries for each model.","intents":["I want to write a single prompt and have it automatically optimized for whichever model I choose","I need to apply consistent style tags (e.g., 'cinematic', 'photorealistic') across different models","I want to add negative prompts automatically based on the model's known failure modes"],"best_for":["non-technical users who don't know model-specific syntax","teams standardizing prompt quality across multiple models","workflows needing to A/B test the same concept across models with optimized prompts"],"limitations":["Prompt translation is heuristic-based, not ML-powered; quality varies by prompt complexity","Style libraries are static and may become outdated as models evolve","No feedback loop — node doesn't learn from failed generations to improve future prompts","Negative prompts are generic; model-specific failure modes require manual curation"],"requires":["n8n 0.200.0+","MuAPI API key","Input prompt (generic or model-specific)"],"input_types":["text (generic prompt)","string (target_model: 'midjourney-v7', 'flux-pro', etc.)","string (style_preset: 'photorealistic', 'cinematic', 'anime', etc.)","array of strings (negative_prompts: optional)"],"output_types":["string (optimized_prompt for target model)","object (metadata: original_prompt, translation_applied, style_tags_added, negative_prompts_added)"],"categories":["text-generation-language","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_8","uri":"capability://data.processing.analysis.generation.metadata.extraction.and.structured.output.normalization","name":"generation metadata extraction and structured output normalization","description":"Extracts and normalizes metadata from model-specific responses (generation time, seed, cost, model version, quality metrics) into a consistent schema across all models. Handles format differences (some models return JSON, others return URLs with embedded metadata) and provides structured access to generation parameters for logging, billing, and quality tracking.","intents":["I want to track generation costs per model and per user for billing purposes","I need to log generation parameters (seed, guidance_scale) for reproducibility","I want to extract quality metrics (aesthetic score, prompt adherence) for filtering outputs"],"best_for":["platforms building billing systems on top of AI generation","teams tracking generation quality and model performance","workflows needing reproducible generations (seed tracking)"],"limitations":["Quality metrics (aesthetic score, prompt adherence) not available from all models; some require external evaluation","Cost data is approximate — actual charges depend on MuAPI's billing, which may differ from metadata","Seed values not guaranteed to produce identical results across model versions","Metadata schema may change as MuAPI updates; no versioning or backward compatibility guarantees"],"requires":["n8n 0.200.0+","MuAPI API response with metadata"],"input_types":["object (raw MuAPI response)"],"output_types":["object (normalized_metadata: generation_time_ms, cost_credits, model_version, seed, quality_metrics, parameters_used)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-samuraigpt--n8n-nodes-muapi__cap_9","uri":"capability://safety.moderation.image.video.quality.filtering.with.configurable.validation.rules","name":"image/video quality filtering with configurable validation rules","description":"Validates generated images and videos against configurable quality criteria (resolution, aspect ratio, content safety, aesthetic score thresholds) before returning them to the workflow. The node can reject outputs that don't meet standards and optionally trigger regeneration with adjusted parameters, or flag for manual review.","intents":["I want to automatically reject blurry or low-quality images and regenerate them","I need to filter out images that violate content policies before they reach users","I want to ensure all generated videos are at least 1080p resolution"],"best_for":["platforms with strict quality standards for end-user content","teams needing content moderation before publishing","workflows where regeneration cost is acceptable vs. manual review"],"limitations":["Quality metrics (blur detection, aesthetic score) require external ML models; adds latency and cost","Content safety filtering is rule-based; no ML-powered content understanding","Regeneration with adjusted parameters is trial-and-error; no guarantee of improvement","False positives/negatives in quality detection can cause valid content to be rejected or invalid content to pass"],"requires":["n8n 0.200.0+","Generated image or video","Quality validation rules configured (resolution, aspect ratio, safety thresholds)"],"input_types":["string (image/video URL or base64)","object (validation_rules: min_resolution, aspect_ratio, safety_threshold, aesthetic_score_min)","boolean (auto_regenerate_on_failure)"],"output_types":["object (validation_result: passed, failed_checks, quality_score)","string or object (original or regenerated content if validation passed)","object (rejection_reason if validation failed)"],"categories":["safety-moderation","image-visual"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":34,"verified":false,"data_access_risk":"high","permissions":["n8n 0.200.0+","MuAPI API key with image generation credits","Network access to MuAPI endpoints","Workflow execution environment with 2GB+ memory for image processing","MuAPI API key with video generation credits (expensive — $0.50-$5 per video)","Workflow timeout configured to 10min+ (videos take 2-5min to generate)","Storage for video files (S3, local disk, or external CDN)","n8n-nodes-muapi plugin installed","MuAPI API key","MuAPI API key with cost tracking enabled"],"failure_modes":["Model availability depends on MuAPI's upstream provider status — no fallback if a model goes offline","Prompt engineering best practices vary per model; node doesn't auto-translate prompts for model-specific syntax","Rate limiting is per-model at MuAPI level; no built-in queue management across models within n8n","Response times vary 5-120s depending on model; no timeout configuration exposed in node UI","Video generation is inherently slow (30s-5min per video); polling adds 1-2s latency per check cycle","No built-in video quality validation — output must be manually reviewed or piped to external QA","Model-specific constraints (max duration, resolution limits) not exposed in node; failures occur at MuAPI level","Webhook-based async handling not supported; polling-only approach doesn't scale beyond 10-20 concurrent jobs per workflow","Node UI is fixed; advanced model parameters may not be exposed in the UI (requires JSON mode)","Credential management is n8n-specific; credentials don't transfer to other platforms","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.10498531606410327,"quality":0.49,"ecosystem":0.6000000000000001,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.2,"quality":0.25,"ecosystem":0.1,"match_graph":0.4,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.063Z","last_scraped_at":"2026-05-03T13:59:55.151Z","last_commit":"2026-03-29T06:58:50Z"},"community":{"stars":80,"forks":7,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=samuraigpt--n8n-nodes-muapi","compare_url":"https://unfragile.ai/compare?artifact=samuraigpt--n8n-nodes-muapi"}},"signature":"+57j9s3GKRLl9X4r7iDF+mnwXe1NabvNZMruKzcgpA3RkjsjF5tyQXiC5JIWC0Fp06uTL7i2puq+hu0uCGByDg==","signedAt":"2026-06-21T07:58:02.051Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/samuraigpt--n8n-nodes-muapi","artifact":"https://unfragile.ai/samuraigpt--n8n-nodes-muapi","verify":"https://unfragile.ai/api/v1/verify?slug=samuraigpt--n8n-nodes-muapi","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"}}