Weblate contributions API
The contributions API from Weblate — 1 operation(s) for contributions.
The contributions API from Weblate — 1 operation(s) for contributions.
openapi: 3.1.1
info:
title: Weblate's REST addons contributions 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: contributions
paths:
/api/users/{username}/contributions/:
get:
operationId: api_users_contributions_list
description: List translation contributions of a user.
parameters:
- in: query
name: id
schema:
type: integer
- in: query
name: is_active
schema:
type: boolean
- 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: path
name: username
schema:
type: string
pattern: ^[^/]+$
required: true
- in: query
name: username
schema:
type: string
tags:
- contributions
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/PaginatedTranslationList'
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'
Translation:
type: object
properties:
language:
allOf:
- $ref: '#/components/schemas/Language'
readOnly: true
component:
allOf:
- $ref: '#/components/schemas/Component'
readOnly: true
language_code:
type: string
maxLength: 50
id:
type: integer
readOnly: true
filename:
type: string
maxLength: 400
revision:
type: string
maxLength: 200
web_url:
type: string
readOnly: true
share_url:
type: string
readOnly: true
translate_url:
type: string
readOnly: true
url:
type: string
format: uri
readOnly: true
is_template:
type: boolean
readOnly: true
is_source:
type: boolean
readOnly: true
total:
type: integer
readOnly: true
total_words:
type: integer
readOnly: true
translated:
type: integer
readOnly: true
translated_words:
type: integer
readOnly: true
translated_percent:
type: number
format: double
readOnly: true
fuzzy:
type: integer
readOnly: true
fuzzy_words:
type: integer
readOnly: true
fuzzy_percent:
type: number
format: double
readOnly: true
failing_checks:
type: integer
readOnly: true
failing_checks_words:
type: integer
readOnly: true
failing_checks_percent:
type: number
format: double
readOnly: true
have_suggestion:
type: integer
readOnly: true
have_comment:
type: integer
readOnly: true
last_change:
type: string
format: date-time
readOnly: true
last_author:
type: string
readOnly: true
repository_url:
type: string
format: uri
readOnly: true
file_url:
type: string
format: uri
readOnly: true
statistics_url:
type: string
format: uri
readOnly: true
changes_list_url:
type: string
format: uri
readOnly: true
units_list_url:
type: string
format: uri
readOnly: true
announcements_url:
type: string
format: uri
readOnly: true
required:
- announcements_url
- changes_list_url
- component
- failing_checks
- failing_checks_percent
- failing_checks_words
- file_url
- filename
- fuzzy
- fuzzy_percent
- fuzzy_words
- have_comment
- have_suggestion
- id
- is_source
- is_template
- language
- last_author
- last_change
- repository_url
- share_url
- statistics_url
- total
- total_words
- translate_url
- translated
- translated_percent
- translated_words
- units_list_url
- url
- web_url
Error423:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode423Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
ColorEnum:
enum:
- navy
- blue
- aqua
- teal
- olive
- green
- lime
- yellow
- orange
- red
- maroon
- fuchsia
- purple
- black
- gray
- silver
type: string
description: '* `navy` - Navy
* `blue` - Blue
* `aqua` - Aqua
* `teal` - Teal
* `olive` - Olive
* `green` - Green
* `lime` - Lime
* `yellow` - Yellow
* `orange` - Orange
* `red` - Red
* `maroon` - Maroon
* `fuchsia` - Fuchsia
* `purple` - Purple
* `black` - Black
* `gray` - Gray
* `silver` - Silver'
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'
Language:
type: object
properties:
id:
type: integer
readOnly: true
code:
type: string
title: Language code
pattern: ^[A-Za-z0-9]+(?:[-_@][A-Za-z0-9]+)*$
maxLength: 50
name:
type: string
maxLength: 100
plural:
$ref: '#/components/schemas/LanguagePlural'
aliases:
type: array
items: {}
readOnly: true
direction:
title: Text direction
oneOf:
- $ref: '#/components/schemas/DirectionEnum'
- $ref: '#/components/schemas/BlankEnum'
population:
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
format: int64
title: Number of speakers
description: Number of people speaking this language.
web_url:
type: string
readOnly: true
url:
type: string
format: uri
readOnly: true
statistics_url:
type: string
format: uri
readOnly: true
required:
- aliases
- code
- id
- statistics_url
- url
- web_url
SourceEnum:
enum:
- 0
- 1
- 3
- 4
- 5
- 6
- 2
type: integer
description: '* `0` - Default plural
* `1` - gettext plural formula
* `3` - CLDR plural with zero
* `4` - CLDR v38+ plural
* `5` - Android plural
* `6` - Qt Linguist plural
* `2` - Manually entered formula'
LanguagePlural:
type: object
properties:
id:
type: integer
readOnly: true
source:
allOf:
- $ref: '#/components/schemas/SourceEnum'
title: Plural definition source
minimum: -32768
maximum: 32767
number:
type: integer
maximum: 10
minimum: 1
title: Number of plurals
formula:
type: string
title: Plural formula
type:
type: integer
readOnly: true
title: Plural type
required:
- id
- type
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'
DirectionEnum:
enum:
- ltr
- rtl
type: string
description: '* `` - Automatically detect text direction
* `ltr` - Left to right
* `rtl` - Right to left'
Error429:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode429Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
NewLangEnum:
enum:
- contact
- url
- add
- none
type: string
description: '* `contact` - Contact maintainers
* `url` - Point to translation instructions URL
* `add` - Create new language file
* `none` - Disable adding new translations'
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
FileFormatEnum:
enum:
- apple-xliff
- appstore
- arb
- aresource
- asciidoc
- ass
- catkeys
- cmp-resource
- csv
- csv-multi
- csv-simple
- dokuwiki
- dtd
- flatxml
- fluent
- formatjs
- go-i18n-json
- go-i18n-json-v2
- go-i18n-toml
- gotext
- gwt
- html
- i18next
- i18nextv4
- idml
- ini
- islu
- joomla
- json
- json-nested
- laravel
- markdown
- mdx
- mediawiki
- mi18n-lang
- moko-resource
- nextcloud-json
- odf
- php
- plainxliff
- po
- po-mono
- poxliff
- properties
- rc
- resjson
- resourcedictionary
- resx
- ruby-yaml
- srt
- ssa
- strings
- stringsdict
- sub
- tbx
- toml
- ts
- txt
- webextension
- wxl
- xliff
- xliff2
- xliff2-placeables
- xlsx
- xwiki-fullpage
- xwiki-java-properties
- xwiki-page-properties
- yaml
type: string
description: '* `apple-xliff` - XLIFF 1.2 with Apple extensions
* `appstore` - App store metadata files
* `arb` - ARB file
* `aresource` - Android String Resource
* `asciidoc` - AsciiDoc file
* `ass` - Advanced SubStation Alpha subtitle file
* `catkeys` - Haiku catkeys
* `cmp-resource` - Compose Multiplatform Resource
* `csv` - CSV file
* `csv-multi` - Multivalue CSV file
* `csv-simple` - Simple CSV file
* `dokuwiki` - DokuWiki text file
* `dtd` - DTD file
* `flatxml` - Flat XML file
* `fluent` - Fluent file
* `formatjs` - Format.JS JSON file
* `go-i18n-json` - go-i18n v1 JSON file
* `go-i18n-json-v2` - go-i18n v2 JSON file
* `go-i18n-toml` - go-i18n TOML file
* `gotext` - gotext JSON file
* `gwt` - GWT properties
* `html` - HTML file
* `i18next` - i18next JSON file v3
* `i18nextv4` - i18next JSON file v4
* `idml` - IDML file
* `ini` - INI file
* `islu` - Inno Setup INI file
* `joomla` - Joomla language file
* `json` - JSON file
* `json-nested` - JSON nested structure file
* `laravel` - Laravel PHP strings
* `markdown` - Markdown file
* `mdx` - MDX file
* `mediawiki` - MediaWiki text file
* `mi18n-lang` - @draggable/i18n lang file
* `moko-resource` - Mobile Kotlin Resource
* `nextcloud-json` - Nextcloud JSON file
* `odf` - OpenDocument file
* `php` - PHP strings
* `plainxliff` - XLIFF 1.2 translation file
* `po` - gettext PO file
* `po-mono` - gettext PO file (monolingual)
* `poxliff` - XLIFF 1.2 with gettext extensions
* `properties` - Java Properties
* `rc` - RC file
* `resjson` - RESJSON file
* `resourcedictionary` - ResourceDictionary file
* `resx` - .NET resource file
* `ruby-yaml` - Ruby YAML file
* `srt` - SubRip subtitle file
* `ssa` - SubStation Alpha subtitle file
* `strings` - iOS strings
* `stringsdict` - Stringsdict file
* `sub` - MicroDVD subtitle file
* `tbx` - TermBase eXchange file
* `toml` - TOML file
* `ts` - Qt Linguist translation file
* `txt` - Plain text file
* `webextension` - WebExtension JSON file
* `wxl` - WixLocalization file
* `xliff` - XLIFF 1.2 with placeables support
* `xliff2` - XLIFF 2.0 translation file
* `xliff2-placeables` - XLIFF 2.0 translation file with placeables support
* `xlsx` - Excel Open XML
* `xwiki-fullpage` - XWiki Full Page
* `xwiki-java-properties` - XWiki Java Properties
* `xwiki-page-properties` - XWiki Page Properties
* `yaml` - YAML file'
LanguageCodeStyleEnum:
enum:
- posix
- posix_lowercase
- bcp
- posix_long
- posix_long_lowercase
- bcp_long
- bcp_legacy
- bcp_lower
- android
- appstore
- googleplay
- linux
- linux_lowercase
type: string
description: '* `` - Default based on the file format
* `posix` - POSIX style using underscore as a separator
* `posix_lowercase` - POSIX style using underscore as a separator, lower cased
* `bcp` - BCP style using hyphen as a separator
* `posix_long` - POSIX style using underscore as a separator, including country code
* `posix_long_lowercase` - POSIX style using underscore as a separator, including country code, lower cased
* `bcp_long` - BCP style using hyphen as a separator, including country code
* `bcp_legacy` - BCP style using hyphen as a separator, legacy language codes
* `bcp_lower` - BCP style using hyphen as a separator, lower cased
* `android` - Android style
* `appstore` - Apple App Store metadata style
* `googleplay` - Google Play metadata style
* `linux` - Linux style
* `linux_lowercase` - Linux style, lower cased'
ErrorResponse400TypeEnum:
enum:
- validation_error
- client_error
type: string
description: '* `validation_error` - Validation Error
* `client_error` - Client Error'
PriorityEnum:
enum:
- 60
- 80
- 100
- 120
- 140
type: integer
description: '* `60` - Very high
* `80` - High
* `100` - Medium
* `120` - Low
* `140` - Very low'
Error500:
type: object
properties:
code:
$ref: '#/components/schemas/ErrorCode500Enum'
detail:
type: string
attr:
type:
- string
- 'null'
required:
- attr
- code
- detail
Component:
type: object
properties:
name:
type: string
title: Component name
description: Display name
maxLength: 100
slug:
type: string
title: URL slug
description: Name used in URLs and filenames.
maxLength: 100
pattern: ^[-a-zA-Z0-9_]+$
id:
type: integer
readOnly: true
source_language:
$ref: '#/components/schemas/Language'
project:
allOf:
- $ref: '#/components/schemas/Project'
readOnly: true
vcs:
allOf:
- $ref: '#/components/schemas/VcsEnum'
title: Version control system
description: 'Version control system to use to access your repository containing translations. You can also choose additional integration with third party providers to submit pull/merge requests.
* `gerrit` - Gerrit
* `git` - Git
* `git-force-push` - Git with force push
* `local` - No remote repository
* `mercurial` - Mercurial
* `subversion` - Subversion'
repo:
type: string
maxLength: 300
git_export:
type: string
title: Exported repository URL
description: URL of repository where users can fetch changes from Weblate
maxLength: 220
branch:
type: string
maxLength: 200
push_branch:
type: string
maxLength: 200
filemask:
type: string
title: File mask
description: 'Path of files to translate relative to repository root, use * instead of language code, for example: po/*.po or locale/*/LC_MESSAGES/django.po.'
maxLength: 400
screenshot_filemask:
type: string
title: Screenshot file mask
description: 'Path of screenshots relative to repository root, for example: docs/screenshots/*.png.'
maxLength: 400
template:
type: string
title: Monolingual base language file
description: Filename of translation base file, containing all strings and their source for monolingual translations.
maxLength: 400
edit_template:
type: boolean
title: Edit base file
description: Whether users will be able to edit the base file for monolingual translations.
intermediate:
type: string
title: Intermediate language file
description: Filename of intermediate translation file. In most cases this is a translation file provided by developers and is used when creating actual source strings.
maxLength: 400
new_base:
type: string
title: Template for new translations
description: Filename of file used for creating new translations. For gettext choose .pot file.
maxLength: 400
file_format:
$ref: '#/components/schemas/FileFormatEnum'
file_format_params:
title: File format parameters
license:
title: Translation license
type: string
maxLength: 150
examples:
- MIT
- GPL-3.0-or-later
- Apache-2.0
- BSD-3-Clause
- proprietary
inherit_license:
type: boolean
title: Inherit translation license
description: Use the translation license configured in the category or project.
effective_license:
type: string
readOnly: true
license_url:
type: string
readOnly: true
announcements_url:
type: string
format: uri
readOnly: true
agreement:
type: string
title: Contributor license agreement
description: Contributor license agreement which needs to be approved before a user can translate this component.
inherit_agreement:
type: boolean
title: Inherit contributor license agreement
description: Use the contributor license agreement configured in the category or project.
effective_agreement:
type: string
readOnly: true
web_url:
type: string
readOnly: true
url:
type: string
format: uri
readOnly: true
repository_url:
type: string
format: uri
readOnly: true
translations_url:
type: string
format: uri
readOnly: true
statistics_url:
type: string
format: uri
readOnly: true
lock_url:
type: string
format: uri
readOnly: true
links_url:
type: string
format: uri
readOnly: true
changes_list_url:
type: string
format: uri
readOnly: true
task_url:
type:
- string
- 'null'
format: uri
readOnly: true
credits_url:
type: string
format: uri
readOnly: true
new_lang:
allOf:
- $ref: '#/components/schemas/NewLangEnum'
title: Adding new translation
description: 'How to handle requests for creating new translations.
* `contact` - Contact maintainers
* `url` - Point to translation instructions URL
* `add` - Create new language file
* `none` - Disable adding new translations'
inherit_new_lang:
type: boolean
title: Inherit adding new translations
description: Use the adding new translations setting configured in the category or project.
effective_new_lang:
type: string
readOnly: true
language_code_style:
description: 'Customize language code used to generate the filename for translations created by Weblate.
* `` - Default based on the file format
* `posix` - POSIX style using underscore as a separator
* `posix_lowercase` - POSIX style using underscore as a separator, lower cased
* `bcp` - BCP style using hyphen as a separator
* `posix_long` - POSIX style using underscore as a separator, including country code
* `posix_long_lowercase` - POSIX style using underscore as a separator, including country code, lower cased
* `bcp_long` - BCP style using hyphen as a separator, including country code
* `bcp_legacy` - BCP style using hyphen as a separator, legacy language codes
* `bcp_lower` - BCP style using hyphen as a separator, lower cased
* `android` - Android style
* `appstore` - Apple App Store metadata style
* `googleplay` - Google Play metadata style
* `linux` - Linux style
* `linux_lowercase` - Linux style, lower cased'
oneOf:
- $ref: '#/components/schemas/LanguageCodeStyleEnum'
- $ref: '#/components/schemas/BlankEnum'
inherit_language_code_style:
type: boolean
description: Use the language code style configured in the category or project.
effective_language_code_style:
type: string
readOnly: true
push:
type: string
maxLength: 300
check_flags:
type: string
title: Translation flags
description: Additional comma-separated flags to influence Weblate behavior.
effective_check_flags:
type: string
readOnly: true
priority:
allOf:
- $ref: '#/components/schemas/PriorityEnum'
description: 'Components with higher priority are offered first to translators.
* `60` - Very high
* `80` - High
* `100` - Medium
* `120` - Low
* `140` - Very low'
minimum: -2147483648
maximum: 2147483647
enforced_checks: {}
restricted:
type: boolean
title: Restricted component
description: Restrict access to the component to only those explicitly given permission.
repoweb:
type: string
title: Repository browser
description: Link to repository browser, use {{branch}} for branch, {{filename}} and {{line}} as filename and line placeholders. You might want to strip leading directory by using {{filename|parentdir}}.
maxLength: 200
report_source_bugs:
type: string
title: Source string bug reporting address
description: E-mail address for reports on errors in source strings. Leave empty for no e-mails.
format: email
maxLength: 190
merge_style:
allOf:
- $ref: '#/components/schemas/MergeStyleEnum'
description: 'Define whether Weblate should merge the upstream repository or rebase changes onto it.
* `merge` - Merge
* `rebase` - Rebase
* `merge_noff` - Merge without fast-forward'
commit_message:
type: string
title: Commit message when translating
description: You can use template language for various info, please consult the documentation for more details.
inherit_commit_message:
type: boolean
title: Inherit commit message when translating
description: Use the commit message when translating configured in the category or project.
effective_commit_message:
type: string
readOnly: true
add_message:
type: string
title: Commit message when adding translation
description: You can use template language for various info, please consult the documentation for more details.
inherit_add_message:
type: boolean
title: Inherit commit message when adding translation
description: Use the commit message when adding translation configured in the category or project.
effecti
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weblate/refs/heads/main/openapi/weblate-contributions-api-openapi.yml