{
  "service": "deepl",
  "displayName": "DeepL",
  "categories": [
    "AI",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "DEEPL_API_KEY",
      "description": "DeepL API key sent with the DeepL-Auth-Key authorization scheme. Find and manage it in the API Keys & Limits tab of your DeepL API account: https://developers.deepl.com/docs/getting-started/managing-api-keys."
    }
  ],
  "homepageUrl": "https://www.deepl.com",
  "actions": [
    {
      "id": "deepl.get_usage",
      "service": "deepl",
      "name": "get_usage",
      "description": "Fetch the current DeepL API usage and quota counters for the connected API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require additional input parameters."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "usage": {
            "type": "object",
            "properties": {
              "character_count": {
                "type": "integer",
                "description": "The total billed character count for the current billing period."
              },
              "character_limit": {
                "type": "integer",
                "description": "The billed character limit for the current billing period."
              },
              "api_key_character_count": {
                "type": "integer",
                "description": "The billed character count attributed to the current API key."
              },
              "api_key_character_limit": {
                "type": "integer",
                "description": "The billed character limit attributed to the current API key."
              },
              "document_count": {
                "type": "integer",
                "description": "The total billed document count for the current billing period."
              },
              "document_limit": {
                "type": "integer",
                "description": "The billed document limit for the current billing period."
              },
              "api_key_document_count": {
                "type": "integer",
                "description": "The billed document count attributed to the current API key."
              },
              "api_key_document_limit": {
                "type": "integer",
                "description": "The billed document limit attributed to the current API key."
              },
              "team_document_count": {
                "type": "integer",
                "description": "The billed team document count for the current billing period."
              },
              "team_document_limit": {
                "type": "integer",
                "description": "The billed team document limit for the current billing period."
              },
              "start_time": {
                "type": "string",
                "description": "The start timestamp of the current billing period.",
                "format": "date-time"
              },
              "end_time": {
                "type": "string",
                "description": "The end timestamp of the current billing period.",
                "format": "date-time"
              },
              "products": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "product_type": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The DeepL product family identifier."
                    },
                    "api_key_character_count": {
                      "type": "integer",
                      "description": "The character count attributed to the current API key for this product."
                    },
                    "api_key_document_count": {
                      "type": "integer",
                      "description": "The document count attributed to the current API key for this product."
                    },
                    "character_count": {
                      "type": "integer",
                      "description": "The total billed character count for this product."
                    },
                    "document_count": {
                      "type": "integer",
                      "description": "The total billed document count for this product."
                    }
                  },
                  "additionalProperties": true,
                  "description": "One DeepL usage product entry."
                },
                "description": "Per-product DeepL usage breakdown entries."
              }
            },
            "additionalProperties": true,
            "description": "The DeepL usage payload returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The normalized DeepL usage response."
      }
    },
    {
      "id": "deepl.list_supported_languages",
      "service": "deepl",
      "name": "list_supported_languages",
      "description": "List the DeepL source or target languages currently supported by the translation API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "source",
              "target"
            ],
            "description": "Whether to list source or target languages."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing DeepL supported languages."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "source",
              "target"
            ],
            "description": "The DeepL language family returned by the API."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "language": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The DeepL language code."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The human-readable DeepL language name."
                },
                "supports_formality": {
                  "type": "boolean",
                  "description": "Whether this target language supports the formality parameter."
                }
              },
              "additionalProperties": false,
              "required": [
                "language",
                "name"
              ],
              "description": "One supported DeepL language entry."
            },
            "description": "The supported DeepL languages returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The normalized DeepL supported language list."
      }
    },
    {
      "id": "deepl.translate_text",
      "service": "deepl",
      "name": "translate_text",
      "description": "Translate one or more text items with DeepL and return the normalized translation results.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "texts": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One text item to translate with DeepL.",
              "pattern": "\\S"
            },
            "description": "The text items to translate in a single DeepL request.",
            "minItems": 1
          },
          "target_lang": {
            "type": "string",
            "minLength": 1,
            "description": "The target language code for the translation."
          },
          "source_lang": {
            "type": "string",
            "minLength": 1,
            "description": "The source language code to force upstream."
          },
          "context": {
            "type": "string",
            "minLength": 1,
            "description": "Optional context that guides translation without being translated itself.",
            "pattern": "\\S"
          },
          "formality": {
            "type": "string",
            "enum": [
              "default",
              "more",
              "less",
              "prefer_more",
              "prefer_less"
            ],
            "description": "The DeepL formality preference for supported target languages."
          },
          "split_sentences": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "nonewlines"
            ],
            "description": "The DeepL sentence splitting mode."
          },
          "preserve_formatting": {
            "type": "boolean",
            "description": "Whether DeepL should preserve the original input formatting."
          },
          "show_billed_characters": {
            "type": "boolean",
            "description": "Whether DeepL should include billed_characters in the translation response."
          }
        },
        "additionalProperties": false,
        "required": [
          "texts",
          "target_lang"
        ],
        "description": "Input parameters for translating text with DeepL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "translations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "detected_source_language": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The source language detected by DeepL."
                },
                "text": {
                  "type": "string",
                  "description": "The translated text returned by DeepL."
                },
                "billed_characters": {
                  "type": "integer",
                  "description": "The billed character count for this translation, when requested."
                },
                "model_type_used": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The DeepL translation model used for this result."
                }
              },
              "additionalProperties": false,
              "required": [
                "text"
              ],
              "description": "One translated text entry returned by DeepL."
            },
            "description": "The translated text results returned by DeepL."
          }
        },
        "additionalProperties": false,
        "description": "The normalized DeepL text translation result."
      }
    }
  ]
}
