{"openapi":"3.1.0","info":{"title":"Nativ JSON Tools API","version":"0.3.0","description":"JSON-only access to Nativ localization tools. Send public HTTPS media URLs and receive expiring download URLs. No multipart uploads or binary response bodies are required."},"servers":[{"url":"https://mcp.usenativ.com"}],"paths":{"/tools/translate":{"post":{"operationId":"translate","summary":"Translate text using Nativ's AI localization engine.","description":"Translate text using Nativ's AI localization engine.\n\n    Uses the team's translation memory, style guides, and brand voice\n    automatically. Returns the translation along with TM match info and\n    rationale.\n\n    Args:\n        text: The text to translate.\n        target_language: Full target language name (e.g. \"French\", \"German\", \"Japanese\").\n        target_language_code: Optional ISO language code (e.g. \"fr\", \"de\", \"ja\").\n        source_language: Source language name. Defaults to English.\n        source_language_code: Source language code. Defaults to \"en\".\n        context: Optional context to guide the translation (e.g. \"marketing headline for Gen Z audience\").\n        glossary: Optional inline glossary as CSV (e.g. \"term,translation\\nbrand,marque\").\n        formality: Tone override — one of: very_informal, informal, neutral, formal, very_formal.\n        max_characters: Optional strict character limit for the translation output.\n        backtranslate: If true, also returns a back-translation to verify intent.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"title":"Text","type":"string"},"target_language":{"title":"Target Language","type":"string"},"target_language_code":{"default":"","title":"Target Language Code","type":"string"},"source_language":{"default":"English","title":"Source Language","type":"string"},"source_language_code":{"default":"en","title":"Source Language Code","type":"string"},"context":{"default":"","title":"Context","type":"string"},"glossary":{"default":"","title":"Glossary","type":"string"},"formality":{"default":"","title":"Formality","type":"string"},"max_characters":{"default":0,"title":"Max Characters","type":"integer"},"backtranslate":{"default":false,"title":"Backtranslate","type":"boolean"}},"required":["text","target_language"],"title":"translateArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/translate_batch":{"post":{"operationId":"translate_batch","summary":"Translate multiple texts to a single target language.","description":"Translate multiple texts to a single target language.\n\n    Useful for localizing lists of strings, UI labels, or i18n files.\n    Each text is translated individually using the team's TM and style guides.\n\n    Args:\n        texts: List of texts to translate.\n        target_language: Full target language name (e.g. \"French\").\n        target_language_code: Optional ISO language code.\n        source_language: Source language name. Defaults to English.\n        source_language_code: Source language code. Defaults to \"en\".\n        context: Optional context to guide all translations.\n        formality: Tone override for all translations.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"texts":{"items":{"type":"string"},"title":"Texts","type":"array"},"target_language":{"title":"Target Language","type":"string"},"target_language_code":{"default":"","title":"Target Language Code","type":"string"},"source_language":{"default":"English","title":"Source Language","type":"string"},"source_language_code":{"default":"en","title":"Source Language Code","type":"string"},"context":{"default":"","title":"Context","type":"string"},"formality":{"default":"","title":"Formality","type":"string"}},"required":["texts","target_language"],"title":"translate_batchArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/search_translation_memory":{"post":{"operationId":"search_translation_memory","summary":"Search the translation memory for existing translations.","description":"Search the translation memory for existing translations.\n\n    Use this to check if translations already exist before creating new ones,\n    or to find reference translations for consistency.\n\n    Args:\n        query: Text to search for in the translation memory.\n        source_language_code: Source language code (default: \"en\").\n        target_language_code: Optional target language code to filter results.\n        min_score: Minimum fuzzy match score (0-100). Default 0 returns all.\n        limit: Maximum number of results (default 10).\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"title":"Query","type":"string"},"source_language_code":{"default":"en","title":"Source Language Code","type":"string"},"target_language_code":{"default":"","title":"Target Language Code","type":"string"},"min_score":{"default":0.0,"title":"Min Score","type":"number"},"limit":{"default":10,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_translation_memoryArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/add_translation_memory_entry":{"post":{"operationId":"add_translation_memory_entry","summary":"Add a new entry to the translation memory.","description":"Add a new entry to the translation memory.\n\n    Use this to store approved translations so they are reused in future\n    localizations.\n\n    Args:\n        source_text: The original text.\n        target_text: The approved translation.\n        source_language_code: Source language code (e.g. \"en\").\n        target_language_code: Target language code (e.g. \"fr-FR\").\n        name: Optional label for this entry (e.g. \"homepage hero copy\").\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"source_text":{"title":"Source Text","type":"string"},"target_text":{"title":"Target Text","type":"string"},"source_language_code":{"title":"Source Language Code","type":"string"},"target_language_code":{"title":"Target Language Code","type":"string"},"name":{"default":"","title":"Name","type":"string"}},"required":["source_text","target_text","source_language_code","target_language_code"],"title":"add_translation_memory_entryArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/get_languages":{"post":{"operationId":"get_languages","summary":"Get all languages configured for the Nativ workspace.","description":"Get all languages configured for the Nativ workspace.\n\n    Returns language names, codes, formality settings, and custom style\n    directives for each language.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_languagesArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/get_translation_memory_stats":{"post":{"operationId":"get_translation_memory_stats","summary":"Get statistics about the translation memory.","description":"Get statistics about the translation memory.\n\n    Shows total entries, enabled/disabled counts, and breakdown by source type.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_translation_memory_statsArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/get_style_guides":{"post":{"operationId":"get_style_guides","summary":"Get all style guides configured for the workspace.","description":"Get all style guides configured for the workspace.\n\n    Returns the titles, content, and enabled status of each style guide.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_style_guidesArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/get_brand_voice":{"post":{"operationId":"get_brand_voice","summary":"Get the brand voice prompt — the core localization personality.","description":"Get the brand voice prompt — the core localization personality.\n\n    This is the master prompt that shapes all translations. It captures\n    the brand's tone, personality, terminology, and localization guidelines.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_brand_voiceArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/extract_image_text":{"post":{"operationId":"extract_image_text","summary":"Extract text segments from an image, in reading order (OCR).","description":"Extract text segments from an image, in reading order (OCR).\n\n    Use this as the first step when localizing an image: pull out the\n    on-image source strings, translate each with `translate` (so TM, style\n    guides, and brand voice apply), then re-render with `localize_image`.\n\n    Args:\n        image_path: Public HTTPS URL (hosted) or local path (stdio) to a PNG, JPEG, or WebP image file.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"image_path":{"title":"Image Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"}},"required":["image_path"],"title":"extract_image_textArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/localize_image":{"post":{"operationId":"localize_image","summary":"Localize an image in place by replacing its on-image text with translations.","description":"Localize an image in place by replacing its on-image text with translations.\n\n    Keeps every non-text element (layout, colours, graphics) intact and\n    re-renders the original text with the provided translations. Pair with\n    `extract_image_text` (to get the source strings) and `translate` (to\n    translate them with TM and brand voice) for a full image localization flow.\n\n    The localized image is saved to disk and the file path is returned — the\n    raw image bytes are not sent back to the model. Hosted mode returns a\n    download URL instead of writing to a local path.\n\n    Args:\n        image_path: Public HTTPS URL (hosted) or local path (stdio) to a PNG, JPEG, or WebP image to localize.\n        replacements: JSON array of {\"original\": \"...\", \"translated\": \"...\"} pairs,\n            e.g. '[{\"original\": \"Buy now\", \"translated\": \"Achetez maintenant\"}]'.\n        target_language_code: Target language code (e.g. \"fr-FR\"), used for labelling output.\n        output_path: Optional path to write the localized image to. Defaults to\n            \"<input>.<lang>.<format>\" next to the source image.\n        num_images: Number of variants to generate (1-5, default 1).\n        output_format: Output format — png, jpeg, or webp (default png).\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"image_path":{"title":"Image Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"},"replacements":{"type":"array","minItems":1,"items":{"type":"object","properties":{"original":{"type":"string"},"translated":{"type":"string"}},"required":["original","translated"],"additionalProperties":false}},"target_language_code":{"title":"Target Language Code","type":"string"},"output_path":{"default":"","title":"Output Path","type":"string"},"num_images":{"default":1,"title":"Num Images","type":"integer"},"output_format":{"default":"png","title":"Output Format","type":"string"}},"required":["image_path","replacements","target_language_code"],"title":"localize_imageArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/check_image_cultural_fit":{"post":{"operationId":"check_image_cultural_fit","summary":"Analyze an image for cultural-sensitivity issues across markets before launch.","description":"Analyze an image for cultural-sensitivity issues across markets before launch.\n\n    Returns a SAFE / NOT SAFE verdict and, where relevant, the specific\n    countries affected with the issue and a concrete fix.\n\n    Args:\n        image_path: Public HTTPS URL (hosted) or local path (stdio) to a PNG, JPEG, or WebP image.\n        countries: Optional comma-separated list of countries to check against\n            (e.g. \"Saudi Arabia, Japan, France\"). Defaults to the top markets by GDP.\n    \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"image_path":{"title":"Image Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"},"countries":{"default":"","title":"Countries","type":"string"}},"required":["image_path"],"title":"check_image_cultural_fitArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/transcribe_audio":{"post":{"operationId":"transcribe_audio","summary":"Transcribe speech from an audio or video file (unbilled draft).","description":"Transcribe speech from an audio or video file (unbilled draft).\n\n        Use the returned segments with `translate` (origin via text) then\n        `synthesize_audio` to produce a dubbed track. Video uploads also\n        return a video_id for muxing.\n\n        Args:\n            file_path: Public HTTPS URL (hosted) or local path (stdio) to audio (mp3, wav, m4a, …) or video (mp4, mov, …).\n            source_language_code: Optional source language hint (e.g. \"en\").\n            keep_background_music: If true, split a music bed for later remix.\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_path":{"title":"File Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"},"source_language_code":{"default":"","title":"Source Language Code","type":"string"},"keep_background_music":{"default":false,"title":"Keep Background Music","type":"boolean"}},"required":["file_path"],"title":"transcribe_audioArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/parse_audio_script":{"post":{"operationId":"parse_audio_script","summary":"Parse a script file (.txt, .docx, .pdf, .srt, .itt) instead of STT.","description":"Parse a script file (.txt, .docx, .pdf, .srt, .itt) instead of STT.\nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_path":{"title":"File Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"}},"required":["file_path"],"title":"parse_audio_scriptArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/list_voices":{"post":{"operationId":"list_voices","summary":"List TTS voices available for dubbing.","description":"List TTS voices available for dubbing.\n\n        Args:\n            language_code: Optional filter (e.g. \"fr\", \"ja-JP\").\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"language_code":{"default":"","title":"Language Code","type":"string"}},"title":"list_voicesArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/preview_voice":{"post":{"operationId":"preview_voice","summary":"Generate a short TTS preview. Hosted mode returns a download URL.","description":"Generate a short TTS preview. Hosted mode returns a download URL.\n\n        Args:\n            voice_id: Voice id from `list_voices`.\n            output_path: Output filename hint (hosted) or WAV path (stdio).\n            language_code: Optional locale.\n            text: Optional preview line (max 200 chars).\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"voice_id":{"title":"Voice Id","type":"string"},"output_path":{"default":"preview.wav","title":"Output Path","type":"string"},"language_code":{"default":"","title":"Language Code","type":"string"},"text":{"default":"","title":"Text","type":"string"}},"required":["voice_id"],"title":"preview_voiceArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/get_voice_consent_script":{"post":{"operationId":"get_voice_consent_script","summary":"Get the spoken consent script required for voice cloning.","description":"Get the spoken consent script required for voice cloning.\nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"language_code":{"default":"","title":"Language Code","type":"string"}},"title":"get_voice_consent_scriptArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/synthesize_audio":{"post":{"operationId":"synthesize_audio","summary":"Generate billed localized TTS (and optional dubbed video). Hosted mode returns download URLs.","description":"Generate billed localized TTS (and optional dubbed video). Hosted mode returns download URLs.\n\n        Args:\n            language: Target language name (e.g. \"French\").\n            language_code: Target language code (e.g. \"fr\").\n            voice_id: Voice id from `list_voices`.\n            segments: JSON array of {text, start_ms, end_ms, original?} objects.\n            output_path: Output filename hint (hosted) or WAV path (stdio).\n            keep_same_length: Stretch/compress speech to source timings.\n            keep_background_music: Mix transcribed music bed when stem_id is set.\n            stem_id: Optional bed stem from `transcribe_audio`.\n            source_duration_ms: Original duration.\n            source_transcript: Optional original transcript.\n            video_id: Optional id from transcribe/register to mux MP4.\n            video_output_path: Optional path for dubbed MP4 when video_id is set.\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"language":{"title":"Language","type":"string"},"language_code":{"title":"Language Code","type":"string"},"voice_id":{"title":"Voice Id","type":"string"},"segments":{"type":"array","minItems":1,"items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"start_ms":{"type":"integer","minimum":0},"end_ms":{"type":"integer","minimum":0},"original":{"type":"string"}},"required":["text"],"additionalProperties":true}},"output_path":{"default":"dubbed.wav","title":"Output Path","type":"string"},"keep_same_length":{"default":false,"title":"Keep Same Length","type":"boolean"},"keep_background_music":{"default":false,"title":"Keep Background Music","type":"boolean"},"stem_id":{"default":"","title":"Stem Id","type":"string"},"source_duration_ms":{"default":0,"title":"Source Duration Ms","type":"integer"},"source_transcript":{"default":"","title":"Source Transcript","type":"string"},"video_id":{"default":"","title":"Video Id","type":"string"},"video_output_path":{"default":"","title":"Video Output Path","type":"string"}},"required":["language","language_code","voice_id","segments"],"title":"synthesize_audioArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/register_video":{"post":{"operationId":"register_video","summary":"Upload a source video for later remuxing. Returns video_id.","description":"Upload a source video for later remuxing. Returns video_id.\nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_path":{"title":"File Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"}},"required":["file_path"],"title":"register_videoArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/remux_video":{"post":{"operationId":"remux_video","summary":"Mux a WAV file onto a previously registered video.","description":"Mux a WAV file onto a previously registered video.\n\n        Args:\n            video_id: Id from `register_video` or `transcribe_audio`.\n            audio_path: Public HTTPS audio URL (hosted) or local file path (stdio).\n            output_path: Output filename hint (hosted) or MP4 path (stdio).\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"video_id":{"title":"Video Id","type":"string"},"audio_path":{"title":"Audio Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"},"output_path":{"default":"dubbed.mp4","title":"Output Path","type":"string"}},"required":["video_id","audio_path"],"title":"remux_videoArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/parse_subtitle":{"post":{"operationId":"parse_subtitle","summary":"Parse an SRT/ITT file into timed cues (no storage).","description":"Parse an SRT/ITT file into timed cues (no storage).\nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"file_path":{"title":"File Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^https://"}},"required":["file_path"],"title":"parse_subtitleArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tools/localize_subtitles":{"post":{"operationId":"localize_subtitles","summary":"Localize subtitles in-memory. Provide an SRT/ITT and/or a video (STT).","description":"Localize subtitles in-memory. Provide an SRT/ITT and/or a video (STT).\n\n        Args:\n            target_language_codes: Comma-separated codes (e.g. \"fr,de,ja\").\n            subtitle_path: Optional public HTTPS subtitle URL (hosted) or local path (stdio).\n            video_path: Optional public HTTPS video URL (hosted) or local path (stdio) for STT.\n            glossary_path: Optional public HTTPS glossary URL (hosted) or local path (stdio).\n            source_language_code: Source language code.\n            context: Optional localization context.\n            formality: Optional formality override.\n            output_dir: Local output directory (stdio). Hosted mode always returns subtitle download URLs.\n        \nHosted file arguments take public HTTPS URLs. Generated media is returned in artifacts as expiring download URLs.","security":[{"NativAPIKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"target_language_codes":{"title":"Target Language Codes","type":"string"},"subtitle_path":{"default":"","title":"Subtitle Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^(https://|$)"},"video_path":{"default":"","title":"Video Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^(https://|$)"},"glossary_path":{"default":"","title":"Glossary Path","type":"string","description":"Public HTTPS media URL, including an unexpired presigned S3/GCS HTTPS URL.","pattern":"^(https://|$)"},"source_language_code":{"default":"en","title":"Source Language Code","type":"string"},"context":{"default":"","title":"Context","type":"string"},"formality":{"default":"","title":"Formality","type":"string"},"output_dir":{"default":"","title":"Output Dir","type":"string"}},"required":["target_language_codes"],"title":"localize_subtitlesArguments","type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Tool result with optional media download URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponse"}}}},"400":{"description":"Invalid JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown tool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"JSON request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Use application/json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid tool arguments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry shortly","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Tool execution failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"NativAPIKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Artifact":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"filename":{"type":"string"},"mime_type":{"type":"string"},"expires_in_seconds":{"type":"integer"}},"required":["url","filename","mime_type","expires_in_seconds"]},"ToolResponse":{"type":"object","properties":{"tool":{"type":"string"},"text":{"type":"string"},"data":{"type":["object","null"],"additionalProperties":true},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/Artifact"}}},"required":["tool","text","data","artifacts"]},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}