openapi: 3.1.0 info: title: SimpleLocalize Customers Translations API description: The SimpleLocalize API is a REST API for managing translations, languages, projects, and customers. It enables developers to create, read, update, and delete translations programmatically, import and export translation files in 30+ formats, auto-translate using DeepL, Google Translate, or OpenAI, and publish translations to CDN for use in web, mobile, and backend applications. version: v2 contact: name: SimpleLocalize Support url: https://simplelocalize.io/contact/ termsOfService: https://simplelocalize.io/terms-of-service/ license: name: Commercial url: https://simplelocalize.io/terms-of-service/ servers: - url: https://api.simplelocalize.io description: SimpleLocalize Production API security: - ApiKeyAuth: [] tags: - name: Translations description: Manage translation strings across languages and namespaces paths: /api/v2/translations: get: operationId: listTranslations summary: List Translations description: Retrieve translations with filtering and pagination. Supports filtering by key, language, namespace, text content, review status, and customer ID. Returns paginated results with up to 500 items per page. tags: - Translations parameters: - name: text in: query description: Search translated text using case-insensitive partial matching required: false schema: type: string - name: textStatus in: query description: Filter by translation completeness required: false schema: type: string enum: - EMPTY - NOT_EMPTY - name: reviewsStatus in: query description: Filter by review status required: false schema: type: string enum: - REVIEWED - NOT_REVIEWED - name: key in: query description: Exact match filter for translation key required: false schema: type: string - name: namespace in: query description: Exact match filter for translation namespace required: false schema: type: string - name: language in: query description: Exact match filter for language identifier required: false schema: type: string - name: customerId in: query description: Filter for customer-specific translations required: false schema: type: string - name: page in: query description: Pagination page number required: false schema: type: integer default: 0 - name: size in: query description: Results per page (maximum 500) required: false schema: type: integer default: 100 maximum: 500 responses: '200': description: Translations retrieved successfully content: application/json: schema: $ref: '#/components/schemas/TranslationListResponse' '401': description: Unauthorized - invalid or missing API key '429': description: Rate limit exceeded /api/v1/translations: post: operationId: createOrUpdateTranslation summary: Create or Update Translation description: Creates a new translation or updates an existing one. Supports upsert semantics - if the translation key already exists for the given language and namespace, it will be updated. tags: - Translations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TranslationRequest' responses: '200': description: Translation created or updated successfully content: application/json: schema: $ref: '#/components/schemas/TranslationResponse' '400': description: Invalid request body '401': description: Unauthorized - invalid or missing API key '429': description: Rate limit exceeded components: schemas: Translation: type: object properties: key: type: string description: Translation key identifier namespace: type: string description: Translation namespace for organizing keys language: type: string description: Language identifier (e.g., en, fr, de) text: type: string description: The translated text reviewStatus: type: string description: Review status of the translation enum: - REVIEWED - NOT_REVIEWED customerId: type: string description: Associated customer identifier for customer-specific translations modifiedAt: type: string format: date-time description: Timestamp of last modification TranslationResponse: type: object properties: status: type: integer description: HTTP status code message: type: string description: Response message data: $ref: '#/components/schemas/Translation' TranslationRequest: type: object required: - key - language properties: key: type: string description: Translation key identifier namespace: type: string description: Translation namespace language: type: string description: Target language identifier text: type: string description: Translated text content TranslationListResponse: type: object properties: status: type: integer message: type: string data: type: array items: $ref: '#/components/schemas/Translation' page: type: integer totalPages: type: integer totalElements: type: integer securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-SimpleLocalize-Token description: Project API key from Settings > Credentials > API Key BearerAuth: type: http scheme: bearer description: Personal Token for Projects API. Generated in account settings. externalDocs: description: SimpleLocalize API Documentation url: https://simplelocalize.io/docs/api/get-started/