openapi: 3.2.0 info: title: Fanar Translations API description: You can interact with FanarAPI for seamless chat completion and text processing using Fanar. termsOfService: https://fanar.qa/terms-of-services contact: name: Fanar Support url: https://fanar.qa/ email: support@fanar.qa version: 1.0.0 x-logo: url: /static/white-logo.svg alt: logo security: - Bearer: [] tags: - name: Translations paths: /v1/translations: post: tags: - Translations summary: Translate description: Translate the given text into the specified language. operationId: translate_v1_translations_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TranslationRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TranslationResponse' '400': description: The content was filtered content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: content_filter message: The content was filtered status: 400 param: prompt type: safety '401': description: Invalid authentication content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: invalid_authentication message: Invalid authentication status: 401 '403': description: Invalid authorization content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: invalid_authorization message: Invalid authorization status: 403 '429': description: Rate limit reached or Exceeded quota content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: exceeded_quota message: Exceeded quota status: 429 '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: internal_server_error message: Internal server error status: 500 '503': description: Service overloaded content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: overloaded message: Service overloaded status: 503 '504': description: Request timed out content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: timeout message: Request timed out status: 504 '413': description: Request entity too large content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: too_large message: Request entity too large status: 413 '422': description: Unprocessable content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: unprocessable message: Unprocessable status: 422 '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: conflict message: Conflict status: 409 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: Not found message: Not found status: 404 '410': description: No longer supported content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: no_longer_supported message: No longer supported status: 410 '499': description: Client closed request before completion content: application/json: schema: $ref: '#/components/schemas/Error' example: error: code: client_closed_request message: Client closed request before completion status: 499 security: - Bearer: [] x-codeSamples: - lang: Curl label: cURL source: "curl -X POST \"https://api.fanar.qa/v1/translations\" \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -d '{\n \"model\": \"Fanar-Shaheen-MT-1\",\n \"text\": \"Your text here\",\n \"langpair\": \"ar-en\",\n \"preprocessing\": \"default\"\n }'\n" - lang: Python label: Python - requests source: "# Translation requires additional authorization and is not allowed by default.\n\nimport requests\n\nheaders = {\n \"Authorization\": \"Bearer YOUR_API_KEY\",\n \"Content-Type\": \"application/json\",\n}\n\njson_data = {\n \"model\": \"Fanar-Shaheen-MT-1\",\n \"text\": \"مرحبا بك في عالم الذكاء الاصطناعي!\",\n \"langpair\": \"ar-en\",\n \"preprocessing\": \"default\",\n}\n\nresponse = requests.post(\"https://api.fanar.qa/v1/translations\", headers=headers, json=json_data)\n\nprint(response.json())" components: schemas: ErrorCode: type: string enum: - content_filter - invalid_authentication - invalid_authorization - rate_limit_reached - exceeded_quota - internal_server_error - overloaded - timeout - too_large - unprocessable - conflict - Not found - no_longer_supported - client_closed_request title: ErrorCode TranslationModels: type: string enum: - Fanar-Shaheen-MT-1 title: TranslationModels TranslationPreprocessing: type: string enum: - default - preserve_html - preserve_whitespace - preserve_whitespace_and_html title: TranslationPreprocessing TranslationLangPairs: type: string enum: - en-ar - ar-en title: TranslationLangPairs TranslationRequest: properties: model: $ref: '#/components/schemas/TranslationModels' description: The model to use for the translation. text: type: string title: Text description: The text to translate. It must not exceed 4,000 words. langpair: $ref: '#/components/schemas/TranslationLangPairs' description: 'The source-target language pair for translation, the current allowed possible values are:
- en-ar: for English to Arabic
- ar-en: for Arabic to English' preprocessing: anyOf: - $ref: '#/components/schemas/TranslationPreprocessing' - type: 'null' description: 'How to preprocess the text before translation:
- default: Splits all sentences by natural punctuation (full stops, question marks, etc.), trims away extra whitespace, and removes HTML tags.
- preserve_html: Does the same as “default”, but tries to preserve HTML tags.
- preserve_whitespace: Aggressively tries to maintain all extra leading/trailing whitespaces and joins sentences across newlines to translate fixed-width content, for example.
- preserve_whitespace_and_html: Combines the previous two.' default: default type: object required: - model - text - langpair title: TranslationRequest example: model: Fanar-Shaheen-MT-1 text: Hello, how are you? langpair: en-ar TranslationResponse: properties: id: type: string title: Id description: A unique identifier for the translation. text: type: string title: Text description: The translated text type: object required: - id - text title: TranslationResponse Error: properties: code: $ref: '#/components/schemas/ErrorCode' message: type: string title: Message default: Internal server error status: $ref: '#/components/schemas/ErrorStatus' default: 500 param: anyOf: - type: string - type: 'null' title: Param type: anyOf: - $ref: '#/components/schemas/ErrorContentFilterType' - type: 'null' type: object title: Error ErrorContentFilterType: type: string enum: - safety - blocklist - incomplete title: ErrorContentFilterType ErrorStatus: type: integer enum: - 400 - 401 - 403 - 429 - 429 - 500 - 503 - 504 - 413 - 422 - 409 - 404 - 410 - 499 title: ErrorStatus securitySchemes: Bearer: type: http scheme: bearer description: Provide your API key in the Authorization header using the Bearer scheme.