openapi: 3.2.0 info: title: Weblate's REST Addons API version: '' x-logo: url: /static/weblate.svg description: 'The API is accessible on the ``/api/`` URL and it is based on Django REST framework. The OpenAPI specification is available as feature preview, feedback welcome! ## Authorization -->' 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: Add Ons description: Added in version 4.4.1. paths: /api/addons/: get: operationId: api_addons_list description: Return a list of add-ons. parameters: - 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 tags: - Add Ons 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/PaginatedAddonList' 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' summary: Api addons list x-summary-source: derived /api/addons/{id}/: get: operationId: api_addons_retrieve description: Returns information about add-on information. parameters: - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - Add Ons 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/Addon' 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' summary: Api addons retrieve x-summary-source: derived put: operationId: api_addons_update description: Edit full information about add-on. parameters: - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - Add Ons requestBody: content: application/json: schema: $ref: '#/components/schemas/Addon' required: true 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: '' '415': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse415' examples: UnsupportedMediaType: value: type: client_error errors: - code: unsupported_media_type detail: Unsupported media type "application/json" in request. 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/Addon' 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' summary: Api addons update x-summary-source: derived patch: operationId: api_addons_partial_update description: Edit partial information about add-on. parameters: - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - Add Ons requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedAddon' 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: '' '415': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse415' examples: UnsupportedMediaType: value: type: client_error errors: - code: unsupported_media_type detail: Unsupported media type "application/json" in request. 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/Addon' 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' summary: Api addons partial update x-summary-source: derived delete: operationId: api_addons_destroy description: Delete add-on. parameters: - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - Add Ons 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: '' '204': description: No response body summary: Api addons destroy x-summary-source: derived /api/addons/{id}/trigger/: post: operationId: api_addons_trigger_create description: Trigger manual execution of an add-on that supports manual triggering. parameters: - in: path name: id schema: type: string pattern: ^[^/]+$ required: true tags: - Add Ons 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: '' '202': content: application/json: schema: $ref: '#/components/schemas/AddonTriggerResponse' description: '' summary: Api addons trigger create x-summary-source: derived webhooks: AddonWebhook: post: description: Pushes events to a notification URL. summary: A Webhook event for an addon tags: - Add Ons requestBody: content: application/json: schema: $id: https://weblate.org/schemas/weblate-messaging.schema.json $schema: http://json-schema.org/draft-07/schema# title: Weblate Messaging description: Schema for Weblate Messaging additionalProperties: false definitions: {} type: object required: - change_id - action - timestamp properties: change_id: title: Change ID type: integer description: Numerical ID of change action: title: Change Action type: string description: Verbose name of the change, see Change actions source code for possible values timestamp: title: Timestamp type: string format: date-time description: ISO formatted timestamp target: title: Target type: - string - array description: New value of the change (eg. new translation of the string) old: title: Old Value type: - string - array description: Old value of the change (eg. previous translation of the string) source: title: Source type: - string - array description: Source string url: title: URL type: string description: Absolute URL to view the related object author: title: Author type: string description: Author username (this can be different from user for example when accepting suggestions) user: title: Acting username type: string project: title: Project slug type: string component: title: Component slug type: string translation: title: Translation Language Code type: string category: title: Category and subcategory slugs type: array items: title: Category slug type: string context: title: Translation context or key for monolingual formats type: string 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 PermissionDenied: value: type: client_error errors: - code: permission_denied detail: You do not have permission to perform this action. attr: null NotFound: value: type: client_error errors: - code: not_found detail: Not found. attr: null MethodNotAllowed: value: type: client_error errors: - code: method_not_allowed detail: Method "get" not allowed. attr: null NotAcceptable: value: type: client_error errors: - code: not_acceptable detail: Could not satisfy the request Accept header. attr: null UnsupportedMediaType: value: type: client_error errors: - code: unsupported_media_type detail: Unsupported media type "application/json" in request. attr: null Throttled: value: type: client_error errors: - code: throttled detail: Request was throttled. attr: null APIException: value: type: server_error errors: - code: error detail: A server error occurred. attr: null responses: 2XX: description: No response body components: schemas: ErrorCode429Enum: enum: - throttled type: string description: '* `throttled` - Throttled' Error406: type: object properties: code: $ref: '#/components/schemas/ErrorCode406Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorResponse423: type: object properties: type: $ref: '#/components/schemas/ServerErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error423' required: - errors - type ErrorResponse401: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error401' 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' ErrorCode406Enum: enum: - not_acceptable type: string description: '* `not_acceptable` - Not Acceptable' PatchedAddon: type: object properties: component: type: string format: uri readOnly: true project: type: string format: uri readOnly: true name: type: string maxLength: 100 id: type: integer readOnly: true configuration: {} url: type: string format: uri readOnly: true ErrorResponse405: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error405' required: - errors - type ErrorResponse415: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error415' required: - errors - type Error415: type: object properties: code: $ref: '#/components/schemas/ErrorCode415Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode405Enum: enum: - method_not_allowed type: string description: '* `method_not_allowed` - Method Not Allowed' ServerErrorEnum: enum: - server_error type: string description: '* `server_error` - Server Error' Error401: type: object properties: code: $ref: '#/components/schemas/ErrorCode401Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail Error403: type: object properties: code: $ref: '#/components/schemas/ErrorCode403Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail Error423: type: object properties: code: $ref: '#/components/schemas/ErrorCode423Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode403Enum: enum: - permission_denied type: string description: '* `permission_denied` - Permission Denied' Error405: type: object properties: code: $ref: '#/components/schemas/ErrorCode405Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode401Enum: enum: - authentication_failed - not_authenticated type: string description: '* `authentication_failed` - Authentication Failed * `not_authenticated` - Not Authenticated' ErrorResponse404: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error404' required: - errors - type Error429: type: object properties: code: $ref: '#/components/schemas/ErrorCode429Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorResponse400: type: object properties: type: $ref: '#/components/schemas/ErrorResponse400TypeEnum' errors: type: array items: $ref: '#/components/schemas/Error400' required: - errors - type ErrorCode404Enum: enum: - not_found type: string description: '* `not_found` - Not Found' 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 ErrorResponse403: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error403' required: - errors - type ClientErrorEnum: enum: - client_error type: string description: '* `client_error` - Client Error' Error404: type: object properties: code: $ref: '#/components/schemas/ErrorCode404Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail Error500: type: object properties: code: $ref: '#/components/schemas/ErrorCode500Enum' detail: type: string attr: type: - string - 'null' required: - attr - code - detail ErrorCode415Enum: enum: - unsupported_media_type type: string description: '* `unsupported_media_type` - Unsupported Media Type' ErrorResponse406: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error406' required: - errors - type ErrorResponse429: type: object properties: type: $ref: '#/components/schemas/ClientErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error429' required: - errors - type Addon: type: object properties: component: type: string format: uri readOnly: true project: type: string format: uri readOnly: true name: type: string maxLength: 100 id: type: integer readOnly: true configuration: {} url: type: string format: uri readOnly: true required: - component - id - name - project - url ErrorResponse500: type: object properties: type: $ref: '#/components/schemas/ServerErrorEnum' errors: type: array items: $ref: '#/components/schemas/Error500' required: - errors - type ErrorCode500Enum: enum: - error type: string description: '* `error` - Error' AddonTriggerResponse: type: object properties: detail: type: string url: type: string format: uri logs_url: type: string format: uri required: - detail - logs_url - url ErrorResponse400TypeEnum: enum: - validation_error - client_error type: string description: '* `validation_error` - Validation Error * `client_error` - Client Error' PaginatedAddonList: 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/Addon' headers: X-RateLimit-Limit: schema: type: integer description: Allowed 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 X-RateLimit-Remaining: schema: type: integer description: Remaining number of requests to perform 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