openapi: 3.0.3 info: title: SYSTRAN Translate & NLP API description: >- RESTful API for SYSTRAN machine translation and natural language processing. The Translate API (server https://api-translate.systran.net) covers text, HTML, and file translation, supported-language discovery, user dictionaries, corpora (translation memory), and translation profiles. The SYSTRAN.io / Platform NLP surface (server https://api-platform.systran.net) adds language detection, morphology, tokenization, segmentation, and named entity recognition. Authenticate with an API key passed as the `key` query parameter or an `Authorization` header. Endpoint status: paths under /translation, /resources, and /profiles are grounded in the published docs.systran.net Translate API reference (confirmed). Paths under /nlp are modeled from the historical SYSTRAN.io / Platform NLP service and marked with `x-endpoint-status: modeled`. version: '1.0' contact: name: SYSTRAN url: https://docs.systran.net/translateAPI/en/ termsOfService: https://www.systran.net servers: - url: https://api-translate.systran.net description: SYSTRAN Translate API (translation, dictionary, corpus, profiles) - url: https://api-platform.systran.net description: SYSTRAN.io / Platform NLP surface (language detection and NLP) security: - ApiKeyQuery: [] - ApiKeyHeader: [] tags: - name: Translation - name: File Translation - name: Supported Languages - name: Language Detection - name: NLP - name: Dictionary - name: Profiles - name: Corpus paths: /translation/text/translate: post: tags: - Translation operationId: translateText summary: Translate text description: Translate one or more text inputs from a source to a target language. parameters: - name: source in: query schema: type: string description: Source language code (auto-detected when omitted). - name: target in: query required: true schema: type: string description: Target language code. - name: input in: query schema: type: array items: type: string description: Text input(s) to translate. - name: format in: query schema: type: string enum: [text, html] - name: profile in: query schema: type: string responses: '200': description: Translation output. /translation/apiVersion: get: tags: - Translation operationId: getTranslationApiVersion summary: Get Translation API version responses: '200': description: API version. /translation/supportedLanguages: get: tags: - Supported Languages operationId: getSupportedLanguages summary: List supported language pairs parameters: - name: source in: query schema: type: string - name: target in: query schema: type: string responses: '200': description: Supported language pairs. /translation/supportedFeatures: get: tags: - Supported Languages operationId: getSupportedFeatures summary: List available model options by language pair responses: '200': description: Supported features. /translation/supportedFormats: get: tags: - Supported Languages operationId: getSupportedFormats summary: List supported input/output formats responses: '200': description: Supported formats. /translation/supportedSelectors: get: tags: - Supported Languages operationId: getSupportedSelectors summary: List available domains, owners, and sizes responses: '200': description: Supported selectors. /translation/profiles: get: tags: - Translation operationId: listTranslationProfiles summary: List translation profiles responses: '200': description: Profiles. /translation/feedback/add: post: tags: - Translation operationId: addTranslationFeedback summary: Submit translation feedback responses: '200': description: Feedback recorded. /translation/file/translate: post: tags: - File Translation operationId: translateFile summary: Translate a file description: Submit a document for translation. Set async=true for asynchronous processing. parameters: - name: source in: query schema: type: string - name: target in: query required: true schema: type: string - name: async in: query schema: type: boolean requestBody: content: multipart/form-data: schema: type: object properties: input: type: string format: binary responses: '200': description: Translated file or a requestId for async jobs. /translation/file/status: get: tags: - File Translation operationId: getFileTranslationStatus summary: Get async file translation status parameters: - name: requestId in: query required: true schema: type: string responses: '200': description: Job status. /translation/file/result: get: tags: - File Translation operationId: getFileTranslationResult summary: Retrieve async file translation result parameters: - name: requestId in: query required: true schema: type: string responses: '200': description: Translated file. /translation/file/cancel: post: tags: - File Translation operationId: cancelFileTranslation summary: Cancel an async file translation request parameters: - name: requestId in: query required: true schema: type: string responses: '200': description: Cancelled. /translation/file/batch/create: post: tags: - File Translation operationId: createTranslationBatch summary: Create a translation batch responses: '200': description: Batch created. /translation/file/batch/status: get: tags: - File Translation operationId: getTranslationBatchStatus summary: Get batch status and associated requests parameters: - name: batchId in: query required: true schema: type: string responses: '200': description: Batch status. /translation/file/batch/close: post: tags: - File Translation operationId: closeTranslationBatch summary: Close a batch (no new requests) responses: '200': description: Batch closed. /translation/file/batch/cancel: post: tags: - File Translation operationId: cancelTranslationBatch summary: Cancel a batch and its ongoing requests responses: '200': description: Batch cancelled. /resources/dictionary/lookup: get: tags: - Dictionary operationId: dictionaryLookup summary: Look up dictionary entries parameters: - name: source in: query schema: type: string - name: target in: query schema: type: string - name: input in: query schema: type: string responses: '200': description: Dictionary matches. /resources/dictionary/lookup/supportedLanguages: get: tags: - Dictionary operationId: dictionaryLookupSupportedLanguages summary: List languages supported by dictionary lookup responses: '200': description: Supported languages. /resources/dictionary/supportedLanguages: get: tags: - Dictionary operationId: dictionarySupportedLanguages summary: List languages supported by user dictionaries responses: '200': description: Supported languages. /resources/dictionary/list: post: tags: - Dictionary operationId: listDictionaries summary: List user dictionaries responses: '200': description: Dictionaries. /resources/dictionary/add: post: tags: - Dictionary operationId: addDictionary summary: Create a user dictionary responses: '200': description: Dictionary created. /resources/dictionary/update: post: tags: - Dictionary operationId: updateDictionary summary: Update a user dictionary responses: '200': description: Dictionary updated. /resources/dictionary/delete: post: tags: - Dictionary operationId: deleteDictionary summary: Delete a user dictionary responses: '200': description: Dictionary deleted. /resources/dictionary/export: post: tags: - Dictionary operationId: exportDictionary summary: Export a user dictionary responses: '200': description: Dictionary export. /resources/dictionary/apply: post: tags: - Dictionary operationId: applyDictionary summary: Apply a user dictionary responses: '200': description: Dictionary applied. /resources/dictionary/entry/list: post: tags: - Dictionary operationId: listDictionaryEntries summary: List dictionary entries responses: '200': description: Entries. /resources/dictionary/entry/add: post: tags: - Dictionary operationId: addDictionaryEntry summary: Add a dictionary entry responses: '200': description: Entry added. /resources/dictionary/entry/update: post: tags: - Dictionary operationId: updateDictionaryEntry summary: Update a dictionary entry responses: '200': description: Entry updated. /resources/dictionary/entry/delete: post: tags: - Dictionary operationId: deleteDictionaryEntry summary: Delete a dictionary entry responses: '200': description: Entry deleted. /resources/dictionary/entry/import: post: tags: - Dictionary operationId: importDictionaryEntries summary: Import dictionary entries responses: '200': description: Entries imported. /profiles: get: tags: - Profiles operationId: listProfiles summary: List profiles responses: '200': description: Profiles. /profiles/create: post: tags: - Profiles operationId: createProfile summary: Create a profile responses: '200': description: Profile created. /profiles/delete: post: tags: - Profiles operationId: deleteProfile summary: Delete a profile responses: '200': description: Profile deleted. /profiles/activate: post: tags: - Profiles operationId: activateProfile summary: Activate a profile responses: '200': description: Profile activated. /profiles/deactivate: post: tags: - Profiles operationId: deactivateProfile summary: Deactivate a profile responses: '200': description: Profile deactivated. /profiles/{id}/permissions: get: tags: - Profiles operationId: getProfilePermissions summary: Get profile permissions parameters: - name: id in: path required: true schema: type: string responses: '200': description: Permissions. post: tags: - Profiles operationId: updateProfilePermissions summary: Update profile permissions parameters: - name: id in: path required: true schema: type: string responses: '200': description: Permissions updated. /translationResources: get: tags: - Profiles operationId: listTranslationResources summary: List translation resources responses: '200': description: Translation resources. /resources/corpus/list: get: tags: - Corpus operationId: listCorpora summary: List corpora responses: '200': description: Corpora. /resources/corpus/add: post: tags: - Corpus operationId: addCorpus summary: Create a corpus responses: '200': description: Corpus created. /resources/corpus/import: post: tags: - Corpus operationId: importCorpus summary: Import corpus content responses: '200': description: Corpus imported. /resources/corpus/details: get: tags: - Corpus operationId: getCorpusDetails summary: Get corpus details responses: '200': description: Corpus details. /resources/corpus/match: get: tags: - Corpus operationId: matchCorpus summary: Match segments against a corpus responses: '200': description: Matches. /resources/corpus/update: post: tags: - Corpus operationId: updateCorpus summary: Update a corpus responses: '200': description: Corpus updated. /resources/corpus/delete: post: tags: - Corpus operationId: deleteCorpus summary: Delete a corpus responses: '200': description: Corpus deleted. /resources/corpus/segment/list: get: tags: - Corpus operationId: listCorpusSegments summary: List corpus segments responses: '200': description: Segments. /resources/corpus/segment/add: post: tags: - Corpus operationId: addCorpusSegment summary: Add a corpus segment responses: '200': description: Segment added. /resources/corpus/segment/update: post: tags: - Corpus operationId: updateCorpusSegment summary: Update a corpus segment responses: '200': description: Segment updated. /resources/corpus/segment/delete: post: tags: - Corpus operationId: deleteCorpusSegment summary: Delete a corpus segment responses: '200': description: Segment deleted. /nlp/lid/detectLanguage: get: tags: - Language Detection operationId: detectLanguage summary: Detect the language of a text x-endpoint-status: modeled servers: - url: https://api-platform.systran.net parameters: - name: input in: query required: true schema: type: string responses: '200': description: Detected language and confidence. /nlp/lid/supportedLanguages: get: tags: - Language Detection operationId: lidSupportedLanguages summary: List languages the detector can recognize x-endpoint-status: modeled servers: - url: https://api-platform.systran.net responses: '200': description: Supported languages. /nlp/morphology/extractRoots: get: tags: - NLP operationId: extractRoots summary: Extract morphological roots x-endpoint-status: modeled servers: - url: https://api-platform.systran.net parameters: - name: lang in: query schema: type: string - name: input in: query required: true schema: type: string responses: '200': description: Morphological analysis. /nlp/tokenization/tokenize: get: tags: - NLP operationId: tokenize summary: Tokenize text x-endpoint-status: modeled servers: - url: https://api-platform.systran.net parameters: - name: lang in: query schema: type: string - name: input in: query required: true schema: type: string responses: '200': description: Tokens. /nlp/segmentation/segment: get: tags: - NLP operationId: segment summary: Segment text into sentences x-endpoint-status: modeled servers: - url: https://api-platform.systran.net parameters: - name: lang in: query schema: type: string - name: input in: query required: true schema: type: string responses: '200': description: Segments. /nlp/ner/extractNamedEntities: get: tags: - NLP operationId: extractNamedEntities summary: Extract named entities x-endpoint-status: modeled servers: - url: https://api-platform.systran.net parameters: - name: lang in: query schema: type: string - name: input in: query required: true schema: type: string responses: '200': description: Named entities. components: securitySchemes: ApiKeyQuery: type: apiKey in: query name: key description: SYSTRAN API key passed as the `key` query parameter. ApiKeyHeader: type: apiKey in: header name: Authorization description: 'API key passed as an Authorization header, e.g. `Authorization: Key YOUR_API_KEY`.'