{
    "openapi": "3.0.3",
    "info": {
        "title": "Textovod API 2",
        "version": "2.1.0",
        "description": "Text checks and AI text tools. Documentation: https://textovod.com/api-docs"
    },
    "servers": [
        {
            "url": "https://textovod.com/api"
        }
    ],
    "security": [
        {
            "bearer": []
        }
    ],
    "paths": {
        "/v2/text/spelling": {
            "post": {
                "summary": "Spelling check",
                "description": "Finds spelling mistakes and suggests corrections. The result is returned at once. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 500000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "ru",
                                            "en",
                                            "de",
                                            "fr",
                                            "es",
                                            "it",
                                            "pt"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/spelling/result": {
            "post": {
                "summary": "Spelling check: result",
                "description": "Result: count — number of mistakes; matches — list of mistakes: offset and length — position in the text, mes — explanation, rep — suggested replacements; text — the checked text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/punctuation": {
            "post": {
                "summary": "Punctuation check",
                "description": "Places commas and other punctuation marks in the text. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 100000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "ru",
                                            "en",
                                            "fr",
                                            "es",
                                            "de",
                                            "it",
                                            "pt"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/punctuation/result": {
            "post": {
                "summary": "Punctuation check: result",
                "description": "Result: text — the text with punctuation; marked — the same text with added marks inside mark tags; details — positions of marks by paragraph and statistics; original — the source text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/unique": {
            "post": {
                "summary": "Plagiarism check",
                "description": "Searches the web for matches and returns the originality of the text as a percentage. Spends PRO characters of the plagiarism counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 100,
                                        "maxLength": 200000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/unique/result": {
            "post": {
                "summary": "Plagiarism check: result",
                "description": "Result: originality — originality in percent; sources — matching sources: url, domain, similarity — share of matches in percent; text — the checked text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/ai-detector": {
            "post": {
                "summary": "AI text detector",
                "description": "Estimates whether the text was written by a neural network and marks suspicious fragments. Spends PRO characters of the plagiarism counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 250,
                                        "maxLength": 200000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/ai-detector/result": {
            "post": {
                "summary": "AI text detector: result",
                "description": "Result: verdict and verdict_title — the outcome; stats — share of AI text and suspicious fragments; segments — fragments: start, end, type, confidence.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/grammar": {
            "post": {
                "summary": "Autocorrector",
                "description": "Fixes grammar, spelling and punctuation mistakes while keeping the meaning and style. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/grammar/result": {
            "post": {
                "summary": "Autocorrector: result",
                "description": "Result: text — the corrected text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/paraphrase": {
            "post": {
                "summary": "Paraphrase",
                "description": "Rewrites the text in other words keeping its meaning. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/paraphrase/result": {
            "post": {
                "summary": "Paraphrase: result",
                "description": "Result: text — the paraphrased text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/rewrite": {
            "post": {
                "summary": "Rewrite",
                "description": "Automatic rewriting of Russian text: replaces words and phrases to raise originality. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 100000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "ru"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/rewrite/result": {
            "post": {
                "summary": "Rewrite: result",
                "description": "Result: text — the rewritten text; original — the source text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/translate": {
            "post": {
                "summary": "Translator",
                "description": "Translates the text into the language given in lang. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/translate/result": {
            "post": {
                "summary": "Translator: result",
                "description": "Result: text — the translation.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/summarize": {
            "post": {
                "summary": "Summarize",
                "description": "Shortens the text keeping the main points. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/summarize/result": {
            "post": {
                "summary": "Summarize: result",
                "description": "Result: text — the shortened text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/expand": {
            "post": {
                "summary": "Expand text",
                "description": "Extends and develops the text. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/expand/result": {
            "post": {
                "summary": "Expand text: result",
                "description": "Result: text — the expanded text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/write": {
            "post": {
                "summary": "Write a text",
                "description": "Writes a text on the topic or task given in text. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/write/result": {
            "post": {
                "summary": "Write a text: result",
                "description": "Result: text — the written text.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/titletext": {
            "post": {
                "summary": "Title for a text",
                "description": "Suggests a title for the text. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/titletext/result": {
            "post": {
                "summary": "Title for a text: result",
                "description": "Result: text — the title.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/dream": {
            "post": {
                "summary": "Dream interpretation",
                "description": "Interprets the dream described in the text. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/dream/result": {
            "post": {
                "summary": "Dream interpretation: result",
                "description": "Result: text — the interpretation.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/chat": {
            "post": {
                "summary": "AI chat",
                "description": "Answers a message. Pass the id of the previous task to continue the dialogue. Spends PRO characters of the AI counter.",
                "tags": [
                    "Tasks"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 35000
                                    },
                                    "lang": {
                                        "type": "string",
                                        "enum": [
                                            "au",
                                            "af",
                                            "ar",
                                            "ast",
                                            "awa",
                                            "az",
                                            "ba",
                                            "ban",
                                            "be",
                                            "bg",
                                            "bho",
                                            "bn",
                                            "bs",
                                            "ca",
                                            "ceb",
                                            "cs",
                                            "cy",
                                            "da",
                                            "de",
                                            "el",
                                            "en",
                                            "es",
                                            "et",
                                            "fa",
                                            "fi",
                                            "fo",
                                            "fr",
                                            "ga",
                                            "gl",
                                            "gu",
                                            "hi",
                                            "hr",
                                            "hu",
                                            "hy",
                                            "id",
                                            "ilo",
                                            "is",
                                            "it",
                                            "ja",
                                            "jv",
                                            "ka",
                                            "kk",
                                            "km",
                                            "kn",
                                            "ko",
                                            "lb",
                                            "li",
                                            "lij",
                                            "lmo",
                                            "lo",
                                            "lt",
                                            "lv",
                                            "mai",
                                            "mag",
                                            "min",
                                            "mk",
                                            "ml",
                                            "ms",
                                            "mt",
                                            "my",
                                            "nb",
                                            "ne",
                                            "nl",
                                            "nn",
                                            "no",
                                            "oc",
                                            "or",
                                            "pa",
                                            "pag",
                                            "pap",
                                            "pl",
                                            "prs",
                                            "pt",
                                            "ro",
                                            "ru",
                                            "sc",
                                            "scn",
                                            "sd",
                                            "si",
                                            "sk",
                                            "sl",
                                            "sq",
                                            "su",
                                            "sv",
                                            "sw",
                                            "ta",
                                            "te",
                                            "tg",
                                            "th",
                                            "tl",
                                            "tr",
                                            "tt",
                                            "uk",
                                            "ur",
                                            "uz",
                                            "vec",
                                            "vi",
                                            "war",
                                            "yi",
                                            "yue",
                                            "zh",
                                            "sr",
                                            "as",
                                            "szl",
                                            "hne",
                                            "fur",
                                            "als",
                                            "he",
                                            "tl",
                                            "jv",
                                            "bjn",
                                            "eu",
                                            "ht",
                                            "kea",
                                            "tpi"
                                        ],
                                        "default": "ru"
                                    },
                                    "id": {
                                        "type": "string",
                                        "description": "Id of a previous chat task to continue the dialogue."
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task accepted, finished or refused.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "422": {
                        "description": "Invalid request body."
                    },
                    "429": {
                        "description": "Too many requests."
                    }
                }
            }
        },
        "/v2/text/chat/result": {
            "post": {
                "summary": "AI chat: result",
                "description": "Result: text — the answer; messages — the whole dialogue.",
                "tags": [
                    "Results"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "id"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Task state or result.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Task"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Missing or invalid API key."
                    },
                    "403": {
                        "description": "The task belongs to another user."
                    },
                    "404": {
                        "description": "Task not found."
                    }
                }
            }
        },
        "/v2/text/balance": {
            "post": {
                "summary": "Balance",
                "description": "PRO characters of both counters, PRO expiry and the old ruble balance.",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "Balance.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Balance"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearer": {
                "type": "http",
                "scheme": "bearer",
                "description": "API key from https://textovod.com/settings/api"
            }
        },
        "schemas": {
            "Task": {
                "type": "object",
                "required": [
                    "status"
                ],
                "properties": {
                    "status": {
                        "type": "integer",
                        "enum": [
                            0,
                            1,
                            2,
                            3,
                            30
                        ],
                        "description": "3 queued, 1 processing, 2 done, 0 error, 30 no PRO characters or no PRO"
                    },
                    "id": {
                        "type": "string",
                        "description": "Task id for the result request."
                    },
                    "result": {
                        "type": "object",
                        "description": "Present when status is 2."
                    },
                    "messages": {
                        "type": "array",
                        "items": {},
                        "description": "Error texts, or the dialogue of an AI service when status is 2."
                    },
                    "error": {
                        "type": "string",
                        "enum": [
                            "no_chars",
                            "need_pro",
                            "too_short",
                            "unavailable",
                            "in_progress",
                            "failed",
                            "rejected"
                        ]
                    }
                }
            },
            "Balance": {
                "type": "object",
                "properties": {
                    "balance": {
                        "type": "number"
                    },
                    "pack": {
                        "type": "integer",
                        "description": "Same as pro.ai."
                    },
                    "pro": {
                        "type": "object",
                        "properties": {
                            "active": {
                                "type": "boolean"
                            },
                            "until": {
                                "type": "string",
                                "nullable": true
                            },
                            "unique": {
                                "type": "integer"
                            },
                            "ai": {
                                "type": "integer"
                            }
                        }
                    }
                }
            }
        }
    }
}