OpenAPI Specification
openapi: 3.1.1
info:
title: Weblate's REST addons 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: addons
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:
- addons
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'
/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:
- addons
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'
put:
operationId: api_addons_update
description: Edit full information about add-on.
parameters:
- in: path
name: id
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- addons
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'
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:
- addons
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'
delete:
operationId: api_addons_destroy
description: Delete add-on.
parameters:
- in: path
name: id
schema:
type: string
pattern: ^[^/]+$
required: true
tags:
- addons
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
/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:
- addons
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: ''
components:
schemas:
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'
Error415:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode415Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
ErrorCode406Enum:
enum:
- not_acceptable
type: string
description: '* `not_acceptable` - Not Acceptable'
Error423:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode423Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
AddonTriggerResponse:
type: object
properties:
detail:
type: string
url:
type: string
format: uri
logs_url:
type: string
format: uri
required:
- detail
- logs_url
- url
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'
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'
ErrorResponse415:
type: object
properties:
type:
$ref: '#/components/schemas/ClientErrorEnum'
errors:
type: array
items:
$ref: '#/components/schemas/Error415'
required:
- errors
- type
Error429:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode429Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
Error406:
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weblate/refs/heads/main/openapi/weblate-addons-api-openapi.yml