@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api LibreTranslate
@version 1.8.4
@auth ApiKey api_key in formData
@endpoints 7
@toc detect(1), frontend(1), health(1), languages(1), suggest(1), translate(1), translate_file(1)

@group detect
@endpoint POST /detect
@desc Detect Language of Text
@required {q: str # Text to detect}
@optional {api_key: str # API key}
@returns(200) Detections
@errors {400: Invalid request, 403: Banned, 429: Slow down, 500: Detection error}

@endgroup

@group frontend
@endpoint GET /frontend/settings
@desc Retrieve Frontend Settings
@returns(200) frontend settings

@endgroup

@group health
@endpoint GET /health
@desc Health Check
@returns(200) Service is healthy

@endgroup

@group languages
@endpoint GET /languages
@desc Get Supported Languages
@returns(200) List of supported languages

@endgroup

@group suggest
@endpoint POST /suggest
@desc Submit a Suggestion to Improve a Translation
@required {q: str # Original text, s: str # Suggested translation, source: str # Language of original text, target: str # Language of suggested translation}
@returns(200) Success
@errors {403: Not authorized}

@endgroup

@group translate
@endpoint POST /translate
@desc Translate Text
@required {q: any # Text(s) to translate, source: str # Source language code or "auto" for auto detection, target: str # Target language code}
@optional {format: str(text/html)=text # Format of source text:  * `text` - Plain text  * `html` - HTML markup, alternatives: int=0 # Preferred number of alternative translations, api_key: str # API key}
@returns(200) Translation
@errors {400: Invalid request, 403: Banned, 429: Slow down, 500: Translation error}

@endgroup

@group translate_file
@endpoint POST /translate_file
@desc Translate a File
@required {file: any # File to translate, source: str # Source language code  or "auto" for auto detection, target: str # Target language code}
@optional {api_key: str # API key}
@returns(200) Translated file
@errors {400: Invalid request, 403: Banned, 429: Slow down, 500: Translation error}

@endgroup

@end
