SimpleLocalize Translations API

Manage translation strings across languages and namespaces

OpenAPI Specification

simplelocalize-translations-api-openapi.yml Raw ↑
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/