Weblate changes API

The changes API from Weblate — 2 operation(s) for changes.

OpenAPI Specification

weblate-changes-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Weblate's REST addons changes API
  version: ''
  x-logo:
    url: /static/weblate.svg
  description: "\nThe API is accessible on the ``/api/`` URL and it is based on [Django REST framework](https://www.django-rest-framework.org/).\n\nThe OpenAPI specification is available as feature preview, feedback welcome!\n\n## Authorization\n\n<!-- Redoc-Inject: <security-definitions> -->\n\n\n    "
  license:
    name: GNU General Public License v3 or later
    url: https://docs.weblate.org/en/latest/contributing/license.html
servers:
- url: 'http:'
  description: Weblate
tags:
- name: changes
paths:
  /api/changes/:
    get:
      operationId: api_changes_list
      description: Return a list of translation changes.
      parameters:
      - in: query
        name: action
        schema:
          type: array
          items:
            type: integer
            enum:
            - 0
            - 1
            - 100
            - 13
            - 14
            - 15
            - 17
            - 18
            - 19
            - 2
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 3
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 4
            - 41
            - 42
            - 43
            - 45
            - 46
            - 47
            - 48
            - 49
            - 5
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
            - 6
            - 60
            - 61
            - 62
            - 63
            - 64
            - 65
            - 66
            - 67
            - 68
            - 69
            - 7
            - 70
            - 71
            - 72
            - 73
            - 74
            - 75
            - 76
            - 77
            - 78
            - 79
            - 8
            - 80
            - 81
            - 82
            - 83
            - 84
            - 85
            - 86
            - 87
            - 88
            - 89
            - 9
            - 90
            - 91
            - 92
            - 93
            - 94
            - 95
            - 96
            - 97
            - 98
            - 99
        description: '* `0` - Resource updated

          * `1` - Translation completed

          * `2` - Translation changed

          * `3` - Comment added

          * `4` - Suggestion added

          * `5` - Translation added

          * `6` - Automatically translated

          * `7` - Suggestion accepted

          * `8` - Translation reverted

          * `9` - Translation uploaded

          * `13` - Source string added

          * `14` - Component locked

          * `15` - Component unlocked

          * `17` - Changes committed

          * `18` - Changes pushed

          * `19` - Repository reset

          * `20` - Repository merged

          * `21` - Repository rebased

          * `22` - Repository merge failed

          * `23` - Repository rebase failed

          * `24` - Parsing failed

          * `25` - Translation removed

          * `26` - Suggestion removed

          * `27` - Translation replaced

          * `28` - Repository push failed

          * `29` - Suggestion removed during cleanup

          * `30` - Source string changed

          * `31` - String added

          * `32` - Bulk status changed

          * `33` - Visibility changed

          * `34` - User added

          * `35` - User removed

          * `36` - Translation approved

          * `37` - Marked for edit

          * `38` - Component removed

          * `39` - Project removed

          * `41` - Project renamed

          * `42` - Component renamed

          * `43` - Moved component

          * `45` - Contributor joined

          * `46` - Announcement posted

          * `47` - Alert triggered

          * `48` - Language added

          * `49` - Language requested

          * `50` - Project created

          * `51` - Component created

          * `52` - User invited

          * `53` - Repository notification received

          * `54` - Translation replaced file by upload

          * `55` - License changed

          * `56` - Contributor license agreement changed

          * `57` - Screenshot added

          * `58` - Screenshot uploaded

          * `59` - String updated in the repository

          * `60` - Add-on installed

          * `61` - Add-on configuration changed

          * `62` - Add-on uninstalled

          * `63` - String removed

          * `64` - Comment removed

          * `65` - Comment resolved

          * `66` - Explanation updated

          * `67` - Category removed

          * `68` - Category renamed

          * `69` - Category moved

          * `70` - Saving string failed

          * `71` - String added in the repository

          * `72` - String updated in the upload

          * `73` - String added in the upload

          * `74` - Translation updated by source upload

          * `75` - Component translation completed

          * `76` - Applied enforced check

          * `77` - Propagated change

          * `78` - File uploaded

          * `79` - Extra flags updated

          * `80` - Font uploaded

          * `81` - Font changed

          * `82` - Font removed

          * `83` - Forced synchronization of translations

          * `84` - Forced rescan of translations

          * `85` - Screenshot removed

          * `86` - Label added

          * `87` - Label removed

          * `88` - Repository cleanup

          * `89` - Source string added in the upload

          * `90` - Source string added in the repository

          * `91` - Project backed up

          * `92` - Project restored

          * `93` - Component restored

          * `94` - User edit reverted

          * `95` - Project setting changed

          * `96` - Component setting changed

          * `97` - User access changed

          * `98` - Workspace created

          * `99` - Workspace setting changed

          * `100` - Project moved'
        explode: true
        style: form
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: query
        name: timestamp_after
        schema:
          type: string
          format: date-time
      - in: query
        name: timestamp_before
        schema:
          type: string
          format: date-time
      - in: query
        name: user
        schema:
          type: string
      tags:
      - changes
      security:
      - tokenAuth: []
      - bearerAuth: []
      - cookieAuth: []
      - {}
      responses:
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
              examples:
                AuthenticationFailed:
                  value:
                    type: client_error
                    errors:
                    - code: authentication_failed
                      detail: Incorrect authentication credentials.
                      attr: null
                NotAuthenticated:
                  value:
                    type: client_error
                    errors:
                    - code: not_authenticated
                      detail: Authentication credentials were not provided.
                      attr: null
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse403'
              examples:
                PermissionDenied:
                  value:
                    type: client_error
                    errors:
                    - code: permission_denied
                      detail: You do not have permission to perform this action.
                      attr: null
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404'
              examples:
                NotFound:
                  value:
                    type: client_error
                    errors:
                    - code: not_found
                      detail: Not found.
                      attr: null
          description: ''
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse405'
              examples:
                MethodNotAllowed:
                  value:
                    type: client_error
                    errors:
                    - code: method_not_allowed
                      detail: Method "get" not allowed.
                      attr: null
          description: ''
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse406'
              examples:
                NotAcceptable:
                  value:
                    type: client_error
                    errors:
                    - code: not_acceptable
                      detail: Could not satisfy the request Accept header.
                      attr: null
          description: ''
        '423':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse423'
          description: ''
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse429'
              examples:
                Throttled:
                  value:
                    type: client_error
                    errors:
                    - code: throttled
                      detail: Request was throttled.
                      attr: null
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
              examples:
                APIException:
                  value:
                    type: server_error
                    errors:
                    - code: error
                      detail: A server error occurred.
                      attr: null
          description: ''
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedChangeList'
          description: ''
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
  /api/changes/{id}/:
    get:
      operationId: api_changes_retrieve
      description: Return information about a translation change.
      parameters:
      - in: path
        name: id
        schema:
          type: string
          pattern: ^[^/]+$
        required: true
      tags:
      - changes
      security:
      - tokenAuth: []
      - bearerAuth: []
      - cookieAuth: []
      - {}
      responses:
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse400'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse401'
              examples:
                AuthenticationFailed:
                  value:
                    type: client_error
                    errors:
                    - code: authentication_failed
                      detail: Incorrect authentication credentials.
                      attr: null
                NotAuthenticated:
                  value:
                    type: client_error
                    errors:
                    - code: not_authenticated
                      detail: Authentication credentials were not provided.
                      attr: null
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse403'
              examples:
                PermissionDenied:
                  value:
                    type: client_error
                    errors:
                    - code: permission_denied
                      detail: You do not have permission to perform this action.
                      attr: null
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse404'
              examples:
                NotFound:
                  value:
                    type: client_error
                    errors:
                    - code: not_found
                      detail: Not found.
                      attr: null
          description: ''
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse405'
              examples:
                MethodNotAllowed:
                  value:
                    type: client_error
                    errors:
                    - code: method_not_allowed
                      detail: Method "get" not allowed.
                      attr: null
          description: ''
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse406'
              examples:
                NotAcceptable:
                  value:
                    type: client_error
                    errors:
                    - code: not_acceptable
                      detail: Could not satisfy the request Accept header.
                      attr: null
          description: ''
        '423':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse423'
          description: ''
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse429'
              examples:
                Throttled:
                  value:
                    type: client_error
                    errors:
                    - code: throttled
                      detail: Request was throttled.
                      attr: null
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse500'
              examples:
                APIException:
                  value:
                    type: server_error
                    errors:
                    - code: error
                      detail: A server error occurred.
                      attr: null
          description: ''
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Change'
          description: ''
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
components:
  schemas:
    ErrorCode405Enum:
      enum:
      - method_not_allowed
      type: string
      description: '* `method_not_allowed` - Method Not Allowed'
    Error423:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode423Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    ErrorResponse403:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error403'
      required:
      - errors
      - type
    ErrorResponse404:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error404'
      required:
      - errors
      - type
    ErrorCode429Enum:
      enum:
      - throttled
      type: string
      description: '* `throttled` - Throttled'
    PaginatedChangeList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/Change'
    ErrorCode401Enum:
      enum:
      - authentication_failed
      - not_authenticated
      type: string
      description: '* `authentication_failed` - Authentication Failed

        * `not_authenticated` - Not Authenticated'
    ErrorCode403Enum:
      enum:
      - permission_denied
      type: string
      description: '* `permission_denied` - Permission Denied'
    Error429:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode429Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    Error406:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode406Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    Error405:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode405Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    Error400:
      type: object
      properties:
        code:
          type: string
          description: Error code. The examples list common validation and parse error codes.
          examples:
          - blank
          - date
          - datetime
          - does_not_exist
          - empty
          - incorrect_match
          - incorrect_type
          - invalid
          - invalid_choice
          - invalid_image
          - invalid_list
          - make_aware
          - max_length
          - max_string_length
          - max_value
          - min_value
          - no_match
          - no_name
          - not_a_list
          - 'null'
          - null_characters_not_allowed
          - overflow
          - parse_error
          - required
          - surrogate_characters_not_allowed
          - unique
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    Error401:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode401Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    Change:
      type: object
      properties:
        unit:
          type: string
          format: uri
          readOnly: true
        component:
          type: string
          format: uri
          readOnly: true
        translation:
          type: string
          format: uri
          readOnly: true
        user:
          type: string
          format: uri
          readOnly: true
        author:
          type: string
          format: uri
          readOnly: true
        timestamp:
          type: string
          format: date-time
          readOnly: true
        action:
          allOf:
          - $ref: '#/components/schemas/ActionEnum'
          minimum: -2147483648
          maximum: 2147483647
        target:
          type: string
        old:
          type: string
        details: {}
        id:
          type: integer
          readOnly: true
        action_name:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - action_name
      - author
      - component
      - id
      - timestamp
      - translation
      - unit
      - url
      - user
    ErrorResponse400TypeEnum:
      enum:
      - validation_error
      - client_error
      type: string
      description: '* `validation_error` - Validation Error

        * `client_error` - Client Error'
    Error500:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode500Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    ErrorCode500Enum:
      enum:
      - error
      type: string
      description: '* `error` - Error'
    ServerErrorEnum:
      enum:
      - server_error
      type: string
      description: '* `server_error` - Server Error'
    Error404:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode404Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    ErrorCode404Enum:
      enum:
      - not_found
      type: string
      description: '* `not_found` - Not Found'
    ErrorResponse500:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ServerErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error500'
      required:
      - errors
      - type
    ActionEnum:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 13
      - 14
      - 15
      - 17
      - 18
      - 19
      - 20
      - 21
      - 22
      - 23
      - 24
      - 25
      - 26
      - 27
      - 28
      - 29
      - 30
      - 31
      - 32
      - 33
      - 34
      - 35
      - 36
      - 37
      - 38
      - 39
      - 41
      - 42
      - 43
      - 45
      - 46
      - 47
      - 48
      - 49
      - 50
      - 51
      - 52
      - 53
      - 54
      - 55
      - 56
      - 57
      - 58
      - 59
      - 60
      - 61
      - 62
      - 63
      - 64
      - 65
      - 66
      - 67
      - 68
      - 69
      - 70
      - 71
      - 72
      - 73
      - 74
      - 75
      - 76
      - 77
      - 78
      - 79
      - 80
      - 81
      - 82
      - 83
      - 84
      - 85
      - 86
      - 87
      - 88
      - 89
      - 90
      - 91
      - 92
      - 93
      - 94
      - 95
      - 96
      - 97
      - 98
      - 99
      - 100
      type: integer
      description: '* `0` - Resource updated

        * `1` - Translation completed

        * `2` - Translation changed

        * `3` - Comment added

        * `4` - Suggestion added

        * `5` - Translation added

        * `6` - Automatically translated

        * `7` - Suggestion accepted

        * `8` - Translation reverted

        * `9` - Translation uploaded

        * `13` - Source string added

        * `14` - Component locked

        * `15` - Component unlocked

        * `17` - Changes committed

        * `18` - Changes pushed

        * `19` - Repository reset

        * `20` - Repository merged

        * `21` - Repository rebased

        * `22` - Repository merge failed

        * `23` - Repository rebase failed

        * `24` - Parsing failed

        * `25` - Translation removed

        * `26` - Suggestion removed

        * `27` - Translation replaced

        * `28` - Repository push failed

        * `29` - Suggestion removed during cleanup

        * `30` - Source string changed

        * `31` - String added

        * `32` - Bulk status changed

        * `33` - Visibility changed

        * `34` - User added

        * `35` - User removed

        * `36` - Translation approved

        * `37` - Marked for edit

        * `38` - Component removed

        * `39` - Project removed

        * `41` - Project renamed

        * `42` - Component renamed

        * `43` - Moved component

        * `45` - Contributor joined

        * `46` - Announcement posted

        * `47` - Alert triggered

        * `48` - Language added

        * `49` - Language requested

        * `50` - Project created

        * `51` - Component created

        * `52` - User invited

        * `53` - Repository notification received

        * `54` - Translation replaced file by upload

        * `55` - License changed

        * `56` - Contributor license agreement changed

        * `57` - Screenshot added

        * `58` - Screenshot uploaded

        * `59` - String updated in the repository

        * `60` - Add-on installed

        * `61` - Add-on configuration changed

        * `62` - Add-on uninstalled

        * `63` - String removed

        * `64` - Comment removed

        * `65` - Comment resolved

        * `66` - Explanation updated

        * `67` - Category removed

        * `68` - Category renamed

        * `69` - Category moved

        * `70` - Saving string failed

        * `71` - String added in the repository

        * `72` - String updated in the upload

        * `73` - String added in the upload

        * `74` - Translation updated by source upload

        * `75` - Component translation completed

        * `76` - Applied enforced check

        * `77` - Propagated change

        * `78` - File uploaded

        * `79` - Extra flags updated

        * `80` - Font uploaded

        * `81` - Font changed

        * `82` - Font removed

        * `83` - Forced synchronization of translations

        * `84` - Forced rescan of translations

        * `85` - Screenshot removed

        * `86` - Label added

        * `87` - Label removed

        * `88` - Repository cleanup

        * `89` - Source string added in the upload

        * `90` - Source string added in the repository

        * `91` - Project backed up

        * `92` - Project restored

        * `93` - Component restored

        * `94` - User edit reverted

        * `95` - Project setting changed

        * `96` - Component setting changed

        * `97` - User access changed

        * `98` - Workspace created

        * `99` - Workspace setting changed

        * `100` - Project moved'
    ErrorResponse423:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ServerErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error423'
      required:
      - errors
      - type
    Error403:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ErrorCode403Enum'
        detail:
          type: string
        attr:
          type:
          - string
          - 'null'
      required:
      - attr
      - code
      - detail
    ErrorResponse401:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error401'
      required:
      - errors
      - type
    ErrorResponse429:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error429'
      required:
      - errors
      - type
    ErrorCode423Enum:
      enum:
      - repository-locked
      - component-locked
      - unknown-locked
      type: string
      description: '* `repository-locked` - Repository Locked

        * `component-locked` - Component Locked

        * `unknown-locked` - Unknown Locked'
    ErrorResponse400:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ErrorResponse400TypeEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error400'
      required:
      - errors
      - type
    ErrorResponse406:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error406'
      required:
      - errors
      - type
    ErrorResponse405:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ClientErrorEnum'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error405'
      required:
      - errors
      - type
    ErrorCode406Enum:
      enum:
      - not_acceptable
      type: string
      description: '* `not_acceptable` - Not Acceptable'
    ClientErrorEnum:
      enum:
      - client_error
      type: string
      description: '* `client_error` - Client Error'
  headers:
    X-RateLimit-Limit:
      schema:
        type: integer
      description: Allowed number of requests to perform
      required: true
    X-RateLimit-Remaining:
      schema:
        type: integer
      description: Remaining number of requests to perform
      required: true
    X-RateLimit-Reset:
      schema:
        type: integer
      description: Number of seconds until the rate-limit window resets
      required: true
  securitySchemes:
    bearerAuth:
      type: apiKey
      in: header
      name: Bearer
      description: "Token-based authentication with required prefix `Bearer`.\n\n- Each user has a personal access token which they can get from their respective user profile. These tokens have the `wlu_` prefix.\n- It is possible to create project tokens whose access to the API is limited to operations to their associated project. These tokens have the `wlp_` prefix.\n        "
    cookieAuth:
      type: apiKey
      in: cookie
      name: sessionid
      description: Session-based authentication used when user is signed in.
    tokenAuth:
      type: apiKey
      in: header
      name: Token
      description: "Token-based authentication with required prefix `Token`.\n\n- Each user has a personal access token which they can get from their respective user profile. These tokens have the `wlu_` prefix.\n- It is possible to create project tokens whose access to the API is limited to operations to their associated project. These tokens have the `wlp_` prefix.\n        "
externalDocs:
  url: https://docs.weblate.org/en/latest/index.html
  description: Official Weblate documentation