API REST de Weblate

Nouveau dans la version 2.6: The REST API is available since Weblate 2.6.

The API is accessible on the /api/ URL and it is based on Django REST framework. You can use it directly or by Client Weblate.

Authentification et paramètres génériques

The public project API is available without authentication, though unauthenticated requests are heavily throttled (by default to 100 requests per day), so it is recommended to use authentication. The authentication uses a token, which you can get in your profile. Use it in the Authorization header:

ANY /

Generic request behaviour for the API, the headers, status codes and parameters here apply to all endpoints as well.

Paramètres de requête:
  • format – Response format (overrides Accept). Possible values depends on REST framework setup, by default json and api are supported. The latter provides web browser interface for API.

  • page – Returns given page of paginated results (use next and previous fields in response to automate the navigation).

En-têtes de requête:
  • Accept – the response content type depends on Accept header

  • Authorization – optional token to authenticate as Authorization: Token YOUR-TOKEN

En-têtes de réponse:
Objet JSON de réponse:
  • detail (string) – verbose description of the result (for HTTP status codes other than 200 OK)

  • count (int) – total item count for object lists

  • next (string) – next page URL for object lists

  • previous (string) – previous page URL for object lists

  • results (array) – results for object lists

  • url (string) – URL to access this resource using API

  • web_url (string) – URL to access this resource using web browser

Codes d’état:

Jetons d’authentification

Modifié dans la version 4.10: Project scoped tokens were introduced in the 4.10 release.

Each user has his personal access token which can be obtained in the user profile. Newly generated user tokens have the wlu_ prefix.

It is possible to create project scoped tokens for API access to given project only. These tokens can be identified by the wlp_ prefix.

Exemples d’authentification

Exemple de requête :

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Exemple de réponse :

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

Exemple CURL :

curl \
    -H "Authorization: Token TOKEN" \
    https://example.com/api/

Passing Parameters Examples

For the POST method the parameters can be specified either as form submission (application/x-www-form-urlencoded) or as JSON (application/json).

Form request example:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Authorization: Token TOKEN

operation=pull

JSON request example:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

Exemple CURL :

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

CURL JSON example:

curl \
    --data-binary '{"operation":"pull"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

API rate limiting

The API requests are rate limited; the default configuration limits it to 100 requests per day for anonymous users and 5000 requests per hour for authenticated users.

Rate limiting can be adjusted in the settings.py; see Throttling in Django REST framework documentation for more details how to configure it.

In the Docker container this can be configured using WEBLATE_API_RATELIMIT_ANON and WEBLATE_API_RATELIMIT_USER.

The status of rate limiting is reported in following headers:

X-RateLimit-Limit

Rate limiting limit of requests to perform

X-RateLimit-Remaining

Remaining limit of requests

X-RateLimit-Reset

Number of seconds until ratelimit window resets

Modifié dans la version 4.1: Added ratelimiting status headers.

API Entry Point

GET /api/

The API root entry point.

Exemple de requête :

GET /api/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript
Authorization: Token YOUR-TOKEN

Exemple de réponse :

HTTP/1.0 200 OK
Date: Fri, 25 Mar 2016 09:46:12 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS

{
    "projects":"http://example.com/api/projects/",
    "components":"http://example.com/api/components/",
    "translations":"http://example.com/api/translations/",
    "languages":"http://example.com/api/languages/"
}

Utilisateurs

Nouveau dans la version 4.0.

GET /api/users/

Returns a list of users if you have permissions to see manage users. If not, then you get to see only your own details.

Voir aussi

Users object attributes are documented at GET /api/users/(str:username)/.

POST /api/users/

Creates a new user.

Paramètres:
  • username (string) – Nom d’utilisateur

  • full_name (string) – User full name

  • email (string) – Courriel utilisateur

  • is_superuser (boolean) – Is user superuser? (optional)

  • is_active (boolean) – Is user active? (optional)

  • is_bot (boolean) – Is user bot? (optional) (used for project scoped tokens)

GET /api/users/(str: username)/

Returns information about users.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Objet JSON de réponse:
  • username (string) – username of a user

  • full_name (string) – full name of a user

  • email (string) – email of a user

  • is_superuser (boolean) – whether the user is a super user

  • is_active (boolean) – whether the user is active

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – date the user is created

  • groups (array) – link to associated groups; see GET /api/groups/(int:id)/

Example JSON data:

{
    "email": "user@example.com",
    "full_name": "Example User",
    "username": "exampleusername",
    "groups": [
        "http://example.com/api/groups/2/",
        "http://example.com/api/groups/3/"
    ],
    "is_superuser": true,
    "is_active": true,
    "is_bot": false,
    "date_joined": "2020-03-29T18:42:42.617681Z",
    "url": "http://example.com/api/users/exampleusername/",
    "statistics_url": "http://example.com/api/users/exampleusername/statistics/"
}
PUT /api/users/(str: username)/

Changes the user parameters.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Objet JSON de réponse:
  • username (string) – username of a user

  • full_name (string) – full name of a user

  • email (string) – email of a user

  • is_superuser (boolean) – whether the user is a super user

  • is_active (boolean) – whether the user is active

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – date the user is created

PATCH /api/users/(str: username)/

Changes the user parameters.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Objet JSON de réponse:
  • username (string) – username of a user

  • full_name (string) – full name of a user

  • email (string) – email of a user

  • is_superuser (boolean) – whether the user is a super user

  • is_active (boolean) – whether the user is active

  • is_bot (boolean) – whether the user is bot (used for project scoped tokens)

  • date_joined (string) – date the user is created

DELETE /api/users/(str: username)/

Deletes all user information and marks the user inactive.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

POST /api/users/(str: username)/groups/

Associate groups with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Paramètres de la forme:
  • string group_id – The unique group ID

DELETE /api/users/(str: username)/groups/

Nouveau dans la version 4.13.1.

Retirer l’utilisateur d’un groupe.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Paramètres de la forme:
  • string group_id – The unique group ID

GET /api/users/(str: username)/statistics/

List statistics of a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Objet JSON de réponse:
  • translated (int) – Nombre de traductions par utilisateur

  • suggested (int) – Nombre de suggestions par utilisateur

  • uploaded (int) – Nombre de téléversements par utilisateur

  • commented (int) – Nombre de commentaires par utilisateur

  • languages (int) – Nombre de langues que l’utilisateur peut traduire

GET /api/users/(str: username)/notifications/

List subscriptions of a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

POST /api/users/(str: username)/notifications/

Associate subscriptions with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

Objet JSON de requête:
  • notification (string) – Name of notification registered

  • scope (int) – Scope of notification from the available choices

  • frequency (int) – Frequency choices for notifications

GET /api/users/(str: username)/notifications/(int: subscription_id)/

Get a subscription associated with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

  • subscription_id (int) – ID de notification enregistré

PUT /api/users/(str: username)/notifications/(int: subscription_id)/

Edit a subscription associated with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

  • subscription_id (int) – ID de notification enregistré

Objet JSON de requête:
  • notification (string) – Name of notification registered

  • scope (int) – Scope of notification from the available choices

  • frequency (int) – Frequency choices for notifications

PATCH /api/users/(str: username)/notifications/(int: subscription_id)/

Edit a subscription associated with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

  • subscription_id (int) – ID de notification enregistré

Objet JSON de requête:
  • notification (string) – Name of notification registered

  • scope (int) – Scope of notification from the available choices

  • frequency (int) – Frequency choices for notifications

DELETE /api/users/(str: username)/notifications/(int: subscription_id)/

Delete a subscription associated with a user.

Paramètres:
  • username (string) – Nom d’utilisateur de l’utilisateur

  • subscription_id – Name of notification registered

  • subscription_id – entier

Groupes

Nouveau dans la version 4.0.

GET /api/groups/

Returns a list of groups if you have permissions to see manage groups. If not, then you get to see only the groups the user is a part of.

Voir aussi

Group object attributes are documented at GET /api/groups/(int:id)/.

POST /api/groups/

Creates a new group.

Paramètres:
GET /api/groups/(int: id)/

Returns information about group.

Paramètres:
  • id (int) – ID du groupe

Objet JSON de réponse:

Example JSON data:

{
    "name": "Guests",
    "defining_project": null,
    "project_selection": 3,
    "language_selection": 1,
    "url": "http://example.com/api/groups/1/",
    "roles": [
        "http://example.com/api/roles/1/",
        "http://example.com/api/roles/2/"
    ],
    "languages": [
        "http://example.com/api/languages/en/",
        "http://example.com/api/languages/cs/",
    ],
    "projects": [
        "http://example.com/api/projects/demo1/",
        "http://example.com/api/projects/demo/"
    ],
    "componentlist": "http://example.com/api/component-lists/new/",
    "components": [
        "http://example.com/api/components/demo/weblate/"
    ]
}
PUT /api/groups/(int: id)/

Changes the group parameters.

Paramètres:
  • id (int) – ID du groupe

Objet JSON de réponse:
  • name (string) – name of a group

  • project_selection (int) – integer corresponding to group of projects

  • language_selection (int) – integer corresponding to group of Languages

PATCH /api/groups/(int: id)/

Changes the group parameters.

Paramètres:
  • id (int) – ID du groupe

Objet JSON de réponse:
  • name (string) – name of a group

  • project_selection (int) – integer corresponding to group of projects

  • language_selection (int) – integer corresponding to group of languages

DELETE /api/groups/(int: id)/

Deletes the group.

Paramètres:
  • id (int) – ID du groupe

POST /api/groups/(int: id)/roles/

Associate roles with a group.

Paramètres:
  • id (int) – ID du groupe

Paramètres de la forme:
  • string role_id – The unique role ID

POST /api/groups/(int: id)/components/

Associate components with a group.

Paramètres:
  • id (int) – ID du groupe

Paramètres de la forme:
  • string component_id – The unique component ID

DELETE /api/groups/(int: id)/components/(int: component_id)

Delete component from a group.

Paramètres:
  • id (int) – ID du groupe

  • component_id (int) – The unique component ID

POST /api/groups/(int: id)/projects/

Associate projects with a group.

Paramètres:
  • id (int) – ID du groupe

Paramètres de la forme:
  • string project_id – The unique project ID

DELETE /api/groups/(int: id)/projects/(int: project_id)

Delete project from a group.

Paramètres:
  • id (int) – ID du groupe

  • project_id (int) – The unique project ID

POST /api/groups/(int: id)/languages/

Associate languages with a group.

Paramètres:
  • id (int) – ID du groupe

Paramètres de la forme:
  • string language_code – The unique language code

DELETE /api/groups/(int: id)/languages/(string: language_code)

Delete language from a group.

Paramètres:
  • id (int) – ID du groupe

  • language_code (string) – The unique language code

POST /api/groups/(int: id)/componentlists/

Associate componentlists with a group.

Paramètres:
  • id (int) – ID du groupe

Paramètres de la forme:
  • string component_list_id – The unique componentlist ID

DELETE /api/groups/(int: id)/componentlists/(int: component_list_id)

Delete componentlist from a group.

Paramètres:
  • id (int) – ID du groupe

  • component_list_id (int) – The unique componentlist ID

Rôles

GET /api/roles/

Returns a list of all roles associated with user. If user is superuser, then list of all existing roles is returned.

Voir aussi

Roles object attributes are documented at GET /api/roles/(int:id)/.

POST /api/roles/

Creates a new role.

Paramètres:
  • name (string) – Nom du rôle

  • permissions (array) – List of codenames of permissions

GET /api/roles/(int: id)/

Returns information about a role.

Paramètres:
  • id (int) – ID de rôle

Objet JSON de réponse:
  • name (string) – Nom du rôle

  • permissions (array) – list of codenames of permissions

Example JSON data:

{
    "name": "Access repository",
    "permissions": [
        "vcs.access",
        "vcs.view"
    ],
    "url": "http://example.com/api/roles/1/",
}
PUT /api/roles/(int: id)/

Changes the role parameters.

Paramètres:
  • id (int) – ID du rôle

Objet JSON de réponse:
  • name (string) – Nom du rôle

  • permissions (array) – list of codenames of permissions

PATCH /api/roles/(int: id)/

Changes the role parameters.

Paramètres:
  • id (int) – ID du rôle

Objet JSON de réponse:
  • name (string) – Nom du rôle

  • permissions (array) – list of codenames of permissions

DELETE /api/roles/(int: id)/

Deletes the role.

Paramètres:
  • id (int) – ID du rôle

Langues

GET /api/languages/

Returns a list of all languages.

Voir aussi

Language object attributes are documented at GET /api/languages/(string:language)/.

POST /api/languages/

Creates a new language.

Paramètres:
  • code (string) – Nom de la langue

  • name (string) – Nom de la langue

  • direction (string) – Orientation du texte

  • population (int) – Nombre de locuteurs

  • plural (object) – Language plural formula and number

GET /api/languages/(string: language)/

Returns information about a language.

Paramètres:
  • language (string) – Code langue

Objet JSON de réponse:
  • code (string) – Code langue

  • direction (string) – Orientation du texte

  • plural (object) – Object of language plural information

  • aliases (array) – Array of aliases for language

Objet JSON de requête:
  • population (int) – Nombre de locuteurs

Example JSON data:

{
    "code": "en",
    "direction": "ltr",
    "name": "English",
    "population": 159034349015,
    "plural": {
        "id": 75,
        "source": 0,
        "number": 2,
        "formula": "n != 1",
        "type": 1
    },
    "aliases": [
        "english",
        "en_en",
        "base",
        "source",
        "eng"
    ],
    "url": "http://example.com/api/languages/en/",
    "web_url": "http://example.com/languages/en/",
    "statistics_url": "http://example.com/api/languages/en/statistics/"
}
PUT /api/languages/(string: language)/

Changes the language parameters.

Paramètres:
  • language (string) – Code de la langue

Objet JSON de requête:
  • name (string) – Nom de la langue

  • direction (string) – Orientation du texte

  • population (int) – Nombre de locuteurs

  • plural (object) – Language plural details

PATCH /api/languages/(string: language)/

Changes the language parameters.

Paramètres:
  • language (string) – Code de la langue

Objet JSON de requête:
  • name (string) – Nom de la langue

  • direction (string) – Orientation du texte

  • population (int) – Nombre de locuteurs

  • plural (object) – Language plural details

DELETE /api/languages/(string: language)/

Deletes the language.

Paramètres:
  • language (string) – Code de la langue

GET /api/languages/(string: language)/statistics/

Returns statistics for a language.

Paramètres:
  • language (string) – Code langue

Objet JSON de réponse:
  • total (int) – total number of strings

  • total_words (int) – total number of words

  • last_change (timestamp) – last changes in the language

  • recent_changes (int) – total number of changes

  • translated (int) – nombre de chaînes traduites

  • translated_percent (float) – pourcentage de chaînes traduites

  • translated_words (int) – number of translated words

  • translated_words_percent (int) – percentage of translated words

  • translated_chars (int) – number of translated characters

  • translated_chars_percent (int) – percentage of translated characters

  • total_chars (int) – number of total characters

  • fuzzy (int) – nombre de chaînes à vérifier

  • fuzzy_percent (int) – percentage of fuzzy (marked for edit) strings

  • failing (int) – number of failing strings

  • failing – percentage of failing strings

Projets

GET /api/projects/

Returns a list of all projects.

Voir aussi

Project object attributes are documented at GET /api/projects/(string:project)/.

POST /api/projects/

Nouveau dans la version 3.9.

Creates a new project.

Paramètres:
  • name (string) – Nom du projet

  • slug (string) – Identifiant du projet

  • web (string) – Site Web du projet

GET /api/projects/(string: project)/

Returns information about a project.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:

Example JSON data:

{
    "name": "Hello",
    "slug": "hello",
    "url": "http://example.com/api/projects/hello/",
    "web": "https://weblate.org/",
    "web_url": "http://example.com/projects/hello/"
}
PATCH /api/projects/(string: project)/

Nouveau dans la version 4.3.

Edit a project by a PATCH request.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

PUT /api/projects/(string: project)/

Nouveau dans la version 4.3.

Edit a project by a PUT request.

Paramètres:
  • project (string) – URL abrégée du projet

DELETE /api/projects/(string: project)/

Nouveau dans la version 3.9.

Deletes a project.

Paramètres:
  • project (string) – URL abrégée du projet

GET /api/projects/(string: project)/changes/

Returns a list of project changes. This is essentially a project scoped GET /api/changes/ accepting same params.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:
GET /api/projects/(string: project)/repository/

Returns information about VCS repository status. This endpoint contains only an overall summary for all repositories for the project. To get more detailed status use GET /api/components/(string:project)/(string:component)/repository/.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:
  • needs_commit (boolean) – whether there are any pending changes to commit

  • needs_merge (boolean) – whether there are any upstream changes to merge

  • needs_push (boolean) – whether there are any local changes to push

Example JSON data:

{
    "needs_commit": true,
    "needs_merge": false,
    "needs_push": true
}
POST /api/projects/(string: project)/repository/

Performs given operation on the VCS repository.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de requête:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup, file-sync

Objet JSON de réponse:
  • result (boolean) – result of the operation

Exemple CURL :

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/repository/

JSON request example:

POST /api/projects/hello/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/projects/(string: project)/components/

Returns a list of translation components in the given project.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:
POST /api/projects/(string: project)/components/

Nouveau dans la version 3.9.

Modifié dans la version 4.3: The zipfile and docfile parameters are now accepted for VCS-less components, see Fichiers locaux.

Modifié dans la version 4.6: The cloned repositories are now automatically shared within a project using URLs internes de Weblate. Use disable_autoshare to turn off this.

Creates translation components in the given project.

Indication

Use URLs internes de Weblate when creating multiple components from a single VCS repository.

Note

Most of the component creation happens in the background. Check the task_url attribute of created component and follow the progress there.

Paramètres:
  • project (string) – URL abrégée du projet

Paramètres de la forme:
  • file zipfile – ZIP file to upload into Weblate for translations initialization

  • file docfile – Document à traduire

  • boolean disable_autoshare – Disables automatic repository sharing via URLs internes de Weblate.

Objet JSON de requête:
Objet JSON de réponse:

JSON can not be used when uploading the files using the zipfile and docfile parameters. The data has to be uploaded as multipart/form-data.

CURL form request example:

curl \
    --form docfile=@strings.html \
    --form name=Weblate \
    --form slug=weblate \
    --form file_format=html \
    --form new_lang=add \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

CURL JSON request example:

curl \
    --data-binary '{
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "name": "Weblate",
        "slug": "weblate",
        "repo": "https://github.com/WeblateOrg/hello.git",
        "template": "",
        "new_base": "po/hello.pot",
        "vcs": "git"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

JSON request to create a new component from Git:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "https://github.com/WeblateOrg/hello.git",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

JSON request to create a new component from another one:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "file_format": "po",
    "filemask": "po/*.po",
    "name": "Weblate",
    "slug": "weblate",
    "repo": "weblate://weblate/hello",
    "template": "",
    "new_base": "po/hello.pot",
    "vcs": "git"
}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
             "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
GET /api/projects/(string: project)/languages/

Returns paginated statistics for all languages within a project.

Nouveau dans la version 3.8.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:
  • results (array) – array of translation statistics objects

  • language (string) – Nom de la langue

  • code (string) – Code de la langue

  • total (int) – total number of strings

  • translated (int) – nombre de chaînes traduites

  • translated_percent (float) – pourcentage de chaînes traduites

  • total_words (int) – total number of words

  • translated_words (int) – number of translated words

  • words_percent (float) – percentage of translated words

GET /api/projects/(string: project)/statistics/

Returns statistics for a project.

Nouveau dans la version 3.8.

Paramètres:
  • project (string) – URL abrégée du projet

Objet JSON de réponse:
  • total (int) – total number of strings

  • translated (int) – nombre de chaînes traduites

  • translated_percent (float) – pourcentage de chaînes traduites

  • total_words (int) – total number of words

  • translated_words (int) – number of translated words

  • words_percent (float) – percentage of translated words

Composants

Indication

Utiliser POST /api/projects/(string:project)/components/ pour créer des composants.

GET /api/components/

Returns a list of translation components.

Voir aussi

Component object attributes are documented at GET /api/components/(string:project)/(string:component)/.

GET /api/components/(string: project)/(string: component)/

Returns information about translation component.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:

Example JSON data:

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "Weblate",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
             "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "source_language": {
        "code": "en",
        "direction": "ltr",
        "population": 159034349015,
        "name": "English",
        "url": "http://example.com/api/languages/en/",
        "web_url": "http://example.com/languages/en/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PATCH /api/components/(string: project)/(string: component)/

Edit a component by a PATCH request.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • source_language (string) – Project source language code (optional)

Objet JSON de requête:
  • name (string) – name of component

  • slug (string) – slug of component

  • repo (string) – VCS repository URL

Exemple CURL :

curl \
    --data-binary '{"name": "new name"}' \
    -H "Content-Type: application/json" \
    -H "Authorization: Token TOKEN" \
    PATCH http://example.com/api/projects/hello/components/

JSON request example:

PATCH /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{
    "name": "new name"
}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "branch": "main",
    "file_format": "po",
    "filemask": "po/*.po",
    "git_export": "",
    "license": "",
    "license_url": "",
    "name": "new name",
    "slug": "weblate",
    "project": {
        "name": "Hello",
        "slug": "hello",
        "source_language": {
            "code": "en",
            "direction": "ltr",
            "population": 159034349015,
            "name": "English",
            "url": "http://example.com/api/languages/en/",
            "web_url": "http://example.com/languages/en/"
        },
        "url": "http://example.com/api/projects/hello/",
        "web": "https://weblate.org/",
        "web_url": "http://example.com/projects/hello/"
    },
    "repo": "file:///home/nijel/work/weblate-hello",
    "template": "",
    "new_base": "",
    "url": "http://example.com/api/components/hello/weblate/",
    "vcs": "git",
    "web_url": "http://example.com/projects/hello/weblate/"
}
PUT /api/components/(string: project)/(string: component)/

Edit a component by a PUT request.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de requête:
  • branch (string) – VCS repository branch

  • file_format (string) – file format of translations

  • filemask (string) – mask of translation files in the repository

  • name (string) – name of component

  • slug (string) – slug of component

  • repo (string) – VCS repository URL

  • template (string) – base file for monolingual translations

  • new_base (string) – base file for adding new translations

  • vcs (string) – système de contrôle des versions

DELETE /api/components/(string: project)/(string: component)/

Nouveau dans la version 3.9.

Deletes a component.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

GET /api/components/(string: project)/(string: component)/changes/

Returns a list of component changes. This is essentially a component scoped GET /api/changes/ accepting same params.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
GET /api/components/(string: project)/(string: component)/file/

Nouveau dans la version 4.9.

Downloads all available translations associated with the component as an archive file using the requested format.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Paramètres de requête:
  • format (string) – The archive format to use; If not specified, defaults to zip; Supported formats: zip

GET /api/components/(string: project)/(string: component)/screenshots/

Returns a list of component screenshots.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
GET /api/components/(string: project)/(string: component)/lock/

Returns component lock status.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
  • locked (boolean) – whether component is locked for updates

Example JSON data:

{
    "locked": false
}
POST /api/components/(string: project)/(string: component)/lock/

Sets component lock status.

Response is same as GET /api/components/(string:project)/(string:component)/lock/.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de requête:
  • lock – Boolean whether to lock or not.

Exemple CURL :

curl \
    -d lock=true \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

JSON request example:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"lock": true}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"locked":true}
GET /api/components/(string: project)/(string: component)/repository/

Returns information about VCS repository status.

The response is same as for GET /api/projects/(string:project)/repository/.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
  • needs_commit (boolean) – whether there are any pending changes to commit

  • needs_merge (boolean) – whether there are any upstream changes to merge

  • needs_push (boolean) – whether there are any local changes to push

  • remote_commit (string) – Remote commit information

  • status (string) – VCS repository status as reported by VCS

  • merge_failure – Text describing merge failure or null if there is none

POST /api/components/(string: project)/(string: component)/repository/

Performs the given operation on a VCS repository.

See POST /api/projects/(string:project)/repository/ for documentation.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de requête:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup

Objet JSON de réponse:
  • result (boolean) – result of the operation

Exemple CURL :

curl \
    -d operation=pull \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/components/hello/weblate/repository/

JSON request example:

POST /api/components/hello/weblate/repository/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"operation":"pull"}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{"result":true}
GET /api/components/(string: project)/(string: component)/monolingual_base/

Downloads base file for monolingual translations.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

GET /api/components/(string: project)/(string: component)/new_template/

Downloads template file for new translations.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

GET /api/components/(string: project)/(string: component)/translations/

Returns a list of translation objects in the given component.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
POST /api/components/(string: project)/(string: component)/translations/

Creates new translation in the given component.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de requête:
Objet JSON de réponse:
  • result (object) – new translation object created

Exemple CURL :

curl \
    -d language_code=cs \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/projects/hello/components/

JSON request example:

POST /api/projects/hello/components/ HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json
Authorization: Token TOKEN
Content-Length: 20

{"language_code": "cs"}

JSON response example:

HTTP/1.0 200 OK
Date: Tue, 12 Apr 2016 09:32:50 GMT
Server: WSGIServer/0.1 Python/2.7.11+
Vary: Accept, Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Content-Language: en
Allow: GET, POST, HEAD, OPTIONS

{
    "failing_checks": 0,
    "failing_checks_percent": 0,
    "failing_checks_words": 0,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "is_source": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "population": 1303174280
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "id": 125,
    "last_author": null,
    "last_change": null,
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 0,
    "translated_percent": 0.0,
    "translated_words": 0,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
GET /api/components/(string: project)/(string: component)/statistics/

Returns paginated statistics for all translations within component.

Nouveau dans la version 2.7.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:

Retourne les projets liés à un composant.

Nouveau dans la version 4.5.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Objet JSON de réponse:
POST /api/components/(string: project)/(string: component)/links/

Associe un projet à un composant.

Nouveau dans la version 4.5.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

Paramètres de la forme:
  • string project_slug – Identifiant du projet

Remove association of a project with a component.

Nouveau dans la version 4.5.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • project_slug (string) – L’identifiant du projet à supprimer

Traductions

GET /api/translations/

Returns a list of translations.

Voir aussi

Translation object attributes are documented at GET /api/translations/(string:project)/(string:component)/(string:language)/.

GET /api/translations/(string: project)/(string: component)/(string: language)/

Returns information about a translation.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de réponse:

Example JSON data:

{
    "component": {
        "branch": "main",
        "file_format": "po",
        "filemask": "po/*.po",
        "git_export": "",
        "license": "",
        "license_url": "",
        "name": "Weblate",
        "new_base": "",
        "project": {
            "name": "Hello",
            "slug": "hello",
            "source_language": {
                "code": "en",
                "direction": "ltr",
                "population": 159034349015,
                "name": "English",
                "url": "http://example.com/api/languages/en/",
                "web_url": "http://example.com/languages/en/"
            },
            "url": "http://example.com/api/projects/hello/",
            "web": "https://weblate.org/",
            "web_url": "http://example.com/projects/hello/"
        },
        "repo": "file:///home/nijel/work/weblate-hello",
        "slug": "weblate",
        "template": "",
        "url": "http://example.com/api/components/hello/weblate/",
        "vcs": "git",
        "web_url": "http://example.com/projects/hello/weblate/"
    },
    "failing_checks": 3,
    "failing_checks_percent": 75.0,
    "failing_checks_words": 11,
    "filename": "po/cs.po",
    "fuzzy": 0,
    "fuzzy_percent": 0.0,
    "fuzzy_words": 0,
    "have_comment": 0,
    "have_suggestion": 0,
    "is_template": false,
    "language": {
        "code": "cs",
        "direction": "ltr",
        "population": 1303174280
        "name": "Czech",
        "url": "http://example.com/api/languages/cs/",
        "web_url": "http://example.com/languages/cs/"
    },
    "language_code": "cs",
    "last_author": "Weblate Admin",
    "last_change": "2016-03-07T10:20:05.499",
    "revision": "7ddfafe6daaf57fc8654cc852ea6be212b015792",
    "share_url": "http://example.com/engage/hello/cs/",
    "total": 4,
    "total_words": 15,
    "translate_url": "http://example.com/translate/hello/weblate/cs/",
    "translated": 4,
    "translated_percent": 100.0,
    "translated_words": 15,
    "url": "http://example.com/api/translations/hello/weblate/cs/",
    "web_url": "http://example.com/projects/hello/weblate/cs/"
}
DELETE /api/translations/(string: project)/(string: component)/(string: language)/

Nouveau dans la version 3.9.

Deletes a translation.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

GET /api/translations/(string: project)/(string: component)/(string: language)/changes/

Returns a list of translation changes. This is essentially a translations-scoped GET /api/changes/ accepting the same parameters.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de réponse:
GET /api/translations/(string: project)/(string: component)/(string: language)/units/

Returns a list of translation units.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

  • q (string) – Search query string Recherche (optional)

Objet JSON de réponse:
POST /api/translations/(string: project)/(string: component)/(string: language)/units/

Ajouter une nouvelle unité.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de requête:
  • key (string) – Name of translation unit (used as key or context)

  • value (array) – Source strings (use single string if not creating plural)

Objet JSON de réponse:
POST /api/translations/(string: project)/(string: component)/(string: language)/autotranslate/

Trigger automatic translation.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de requête:
  • mode (string) – Mode de traduction automatique

  • filter_type (string) – Automatic translation filter type

  • auto_source (string) – Automatic translation source - mt or others

  • component (string) – Activez la contribution au mémoire de traduction partagé du projet afin d’avoir accès aux composants supplémentaires.

  • engines (array) – Moteurs de traduction automatisée

  • threshold (string) – Seuil de score

GET /api/translations/(string: project)/(string: component)/(string: language)/file/

Download current translation file as it is stored in the VCS (without the format parameter) or converted to another format (see Downloading translations).

Note

This API endpoint uses different logic for output than rest of API as it operates on whole file rather than on data. Set of accepted format parameter differs and without such parameter you get translation file as stored in VCS.

Paramètres de requête:
  • format – File format to use; if not specified no format conversion happens; supported file formats: po, mo, xliff, xliff11, tbx, csv, xlsx, json, aresource, strings

  • q (string) – Filter downloaded strings, see Page de recherche, only applicable when conversion is in place (format is specified).

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

POST /api/translations/(string: project)/(string: component)/(string: language)/file/

Upload new file with translations.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Paramètres de la forme:
  • string conflicts – How to deal with conflicts (ignore, replace-translated or replace-approved)

  • file file – Fichier téléversé

  • string email – Adresse courriel de l’auteur

  • string author – Nom de l’auteur

  • string method – Upload method (translate, approve, suggest, fuzzy, replace, source, add), see Import methods

  • string fuzzy – Fuzzy (marked for edit) strings processing (empty, process, approve)

Exemple CURL :

curl -X POST \
    -F file=@strings.xml \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/translations/hello/android/cs/file/
GET /api/translations/(string: project)/(string: component)/(string: language)/repository/

Returns information about VCS repository status.

The response is same as for GET /api/components/(string:project)/(string:component)/repository/.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

POST /api/translations/(string: project)/(string: component)/(string: language)/repository/

Performs given operation on the VCS repository.

See POST /api/projects/(string:project)/repository/ for documentation.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de requête:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup

Objet JSON de réponse:
  • result (boolean) – result of the operation

GET /api/translations/(string: project)/(string: component)/(string: language)/statistics/

Returns detailed translation statistics.

Nouveau dans la version 2.7.

Paramètres:
  • project (string) – URL abrégée du projet

  • component (string) – URL abrégée du composant

  • language (string) – Translation language code

Objet JSON de réponse:
  • code (string) – Code de la langue

  • failing (int) – number of failing checks

  • failing_percent (float) – percentage of failing checks

  • fuzzy (int) – nombre de chaînes à vérifier

  • fuzzy_percent (float) – percentage of fuzzy (marked for edit) strings

  • total_words (int) – total number of words

  • translated_words (int) – number of translated words

  • last_author (string) – name of last author

  • last_change (timestamp) – date of last change

  • name (string) – Nom de la langue

  • total (int) – total number of strings

  • translated (int) – nombre de chaînes traduites

  • translated_percent (float) – pourcentage de chaînes traduites

  • url (string) – URL to access the translation (engagement URL)

  • url_translate (string) – URL to access the translation (real translation URL)

Mémoire

Nouveau dans la version 4.14.

GET /api/memory/

Returns a list of memory results.

DELETE /api/memory/(int: memory_object_id)/

Deletes a memory object

Paramètres:
  • memory_object_id – Memory Object ID

Unités

A unit is a single piece of a translation which pairs a source string with a corresponding translated string and also contains some related metadata. The term is derived from the Translate Toolkit and XLIFF.

Nouveau dans la version 2.10.

GET /api/units/

Returns list of translation units.

Paramètres:
  • q (string) – Search query string Recherche (optional)

Voir aussi

Unit object attributes are documented at GET /api/units/(int:id)/.

GET /api/units/(int: id)/

Modifié dans la version 4.3: The target and source are now arrays to properly handle plural strings.

Returns information about translation unit.

Paramètres:
  • id (int) – ID d’unité

Objet JSON de réponse:
  • translation (string) – URL of a related translation object

  • source (array) – Chaîne source

  • previous_source (string) – previous source string used for fuzzy matching

  • target (array) – Chaîne cible

  • id_hash (string) – unique identifier of the unit

  • content_hash (string) – unique identifier of the source string

  • location (string) – location of the unit in source code

  • context (string) – translation unit context

  • note (string) – translation unit note

  • flags (string) – translation unit flags

  • labels (array) – translation unit labels, available on source units

  • state (int) – unit state, 0 - untranslated, 10 - needs editing, 20 - translated, 30 - approved, 100 - read only

  • fuzzy (boolean) – si l’unité est approximative ou marquée pour révision

  • translated (boolean) – si l’unité est traduite

  • approved (boolean) – si la traduction est approuvée

  • position (int) – unit position in translation file

  • has_suggestion (boolean) – si l’unité a des suggestions

  • has_comment (boolean) – si l’unité a des commentaires

  • has_failing_check (boolean) – si l’unité a échoué aux contrôles

  • num_words (int) – number of source words

  • priority (int) – translation priority; 100 is default

  • id (int) – Identifiant d’unité

  • explanation (string) – String explanation, available on source units, see Additional info on source strings

  • extra_flags (string) – Drapeaux de chaîne supplémentaires, disponibles sur les unités sources, voir Customizing behavior using flags

  • web_url (string) – URL where the unit can be edited

  • source_unit (string) – Source unit link; see GET /api/units/(int:id)/

  • pending (boolean) – whether the unit is pending for write

  • timestamp (timestamp) – string age

PATCH /api/units/(int: id)/

Nouveau dans la version 4.3.

Réaliser une mise à jour partielle sur l’unité de traduction.

Paramètres:
  • id (int) – ID d’unité

Objet JSON de requête:
  • state (int) – unit state, 0 - untranslated, 10 - needs editing, 20 - translated, 30 - approved (need review workflow enabled, see Dedicated reviewers)

  • target (array) – Chaîne cible

  • explanation (string) – String explanation, available on source units, see Additional info on source strings

  • extra_flags (string) – Drapeaux de chaîne supplémentaires, disponibles sur les unités sources, voir Customizing behavior using flags

Objet JSON de réponse:
  • labels (array) – labels, available on source units

PUT /api/units/(int: id)/

Nouveau dans la version 4.3.

Réaliser une mise à jour complète sur l’unité de traduction.

Paramètres:
  • id (int) – ID d’unité

Objet JSON de requête:
  • state (int) – unit state, 0 - untranslated, 10 - needs editing, 20 - translated, 30 - approved (need review workflow enabled, see Dedicated reviewers)

  • target (array) – Chaîne cible

  • explanation (string) – String explanation, available on source units, see Additional info on source strings

  • extra_flags (string) – Drapeaux de chaîne supplémentaires, disponibles sur les unités sources, voir Customizing behavior using flags

Objet JSON de réponse:
  • labels (array) – labels, available on source units

DELETE /api/units/(int: id)/

Nouveau dans la version 4.3.

Supprime une unité de traduction.

Paramètres:
  • id (int) – ID d’unité

Modifications

Nouveau dans la version 2.10.

GET /api/changes/

Modifié dans la version 4.1: Filtering of changes was introduced in the 4.1 release.

Returns a list of translation changes.

Voir aussi

Change object attributes are documented at GET /api/changes/(int:id)/.

Paramètres de requête:
  • user (string) – Username of user to filters

  • action (int) – Action to filter, can be used several times

  • timestamp_after (timestamp) – ISO 8601 formatted timestamp to list changes after

  • timestamp_before (timestamp) – ISO 8601 formatted timestamp to list changes before

GET /api/changes/(int: id)/

Returns information about translation change.

Paramètres:
  • id (int) – ID de la modification

Objet JSON de réponse:
  • unit (string) – URL of a related unit object

  • translation (string) – URL of a related translation object

  • component (string) – URL of a related component object

  • user (string) – URL of a related user object

  • author (string) – URL of a related author object

  • timestamp (timestamp) – Horodatage de l’événement

  • action (int) – numeric identification of action

  • action_name (string) – text description of action

  • target (string) – event changed text or detail

  • id (int) – Identifiant de l’événement

Captures d’écran

Nouveau dans la version 2.14.

GET /api/screenshots/

Returns a list of screenshot string information.

Voir aussi

Screenshot object attributes are documented at GET /api/screenshots/(int:id)/.

GET /api/screenshots/(int: id)/

Returns information about screenshot information.

Paramètres:
  • id (int) – ID de la capture d’écran

Objet JSON de réponse:
GET /api/screenshots/(int: id)/file/

Download the screenshot image.

Paramètres:
  • id (int) – ID de la capture d’écran

POST /api/screenshots/(int: id)/file/

Replace screenshot image.

Paramètres:
  • id (int) – ID de la capture d’écran

Paramètres de la forme:
  • file image – Fichier téléversé

Exemple CURL :

curl -X POST \
    -F image=@image.png \
    -H "Authorization: Token TOKEN" \
    http://example.com/api/screenshots/1/file/
POST /api/screenshots/(int: id)/units/

Associate source string with screenshot.

Paramètres:
  • id (int) – ID de la capture d’écran

Paramètres de la forme:
  • string unit_id – ID d’unité

Objet JSON de réponse:
DELETE /api/screenshots/(int: id)/units/(int: unit_id)

Supprimer l’association de la chaîne source avec la capture d’écran.

Paramètres:
  • id (int) – ID de la capture d’écran

  • unit_id – ID de l’unité de la chaîne source

POST /api/screenshots/

Creates a new screenshot.

Paramètres de la forme:
  • file image – Fichier téléversé

  • string name – Nom de la capture d’écran

  • string project_slug – Identifiant du projet

  • string component_slug – Identifiant du composant

  • string language_code – Code langue

Objet JSON de réponse:
PATCH /api/screenshots/(int: id)/

Modifier les informations partielles sur la capture d’écran.

Paramètres:
  • id (int) – ID de la capture d’écran

Objet JSON de réponse:
PUT /api/screenshots/(int: id)/

Modifier les informations complètes sur la capture d’écran.

Paramètres:
  • id (int) – ID de la capture d’écran

Objet JSON de réponse:
DELETE /api/screenshots/(int: id)/

Supprimer la capture d’écran.

Paramètres:
  • id (int) – ID de la capture d’écran

Extensions

Nouveau dans la version 4.4.1.

GET /api/addons/

Returns a list of add-ons.

Voir aussi

Add-on object attributes are documented at GET /api/addons/(int:id)/.

GET /api/addons/(int: id)/

Returns information about add-on information.

Paramètres:
  • id (int) – ID du module

Objet JSON de réponse:
  • name (string) – name of an add-on

  • component (string) – URL of a related component object

  • configuration (object) – Optional add-on configuration

Voir aussi

Extensions

POST /api/components/(string: project)/(string: component)/addons/

Creates a new add-on.

Paramètres:
  • project_slug (string) – Identifiant du projet

  • component_slug (string) – Identifiant du composant

Objet JSON de requête:
  • name (string) – name of an add-on

  • configuration (object) – Optional add-on configuration

PATCH /api/addons/(int: id)/

Edit partial information about add-on.

Paramètres:
  • id (int) – ID du module

Objet JSON de réponse:
  • configuration (object) – Optional add-on configuration

PUT /api/addons/(int: id)/

Edit full information about add-on.

Paramètres:
  • id (int) – ID du module

Objet JSON de réponse:
  • configuration (object) – Optional add-on configuration

DELETE /api/addons/(int: id)/

Delete add-on.

Paramètres:
  • id (int) – ID du module

Listes de composants

Nouveau dans la version 4.0.

GET /api/component-lists/

Returns a list of component lists.

Voir aussi

Component list object attributes are documented at GET /api/component-lists/(str:slug)/.

GET /api/component-lists/(str: slug)/

Returns information about component list.

Paramètres:
  • slug (string) – Component list slug

Objet JSON de réponse:
  • name (string) – name of a component list

  • slug (string) – slug of a component list

  • show_dashboard (boolean) – whether to show it on a dashboard

  • components (array) – link to associated components; see GET /api/components/(string:project)/(string:component)/

  • auto_assign (array) – automatic assignment rules

PUT /api/component-lists/(str: slug)/

Changes the component list parameters.

Paramètres:
  • slug (string) – Component list slug

Objet JSON de requête:
  • name (string) – name of a component list

  • slug (string) – slug of a component list

  • show_dashboard (boolean) – whether to show it on a dashboard

PATCH /api/component-lists/(str: slug)/

Changes the component list parameters.

Paramètres:
  • slug (string) – Component list slug

Objet JSON de requête:
  • name (string) – name of a component list

  • slug (string) – slug of a component list

  • show_dashboard (boolean) – whether to show it on a dashboard

DELETE /api/component-lists/(str: slug)/

Deletes the component list.

Paramètres:
  • slug (string) – Component list slug

POST /api/component-lists/(str: slug)/components/

Associate component with a component list.

Paramètres:
  • slug (string) – Component list slug

Paramètres de la forme:
  • string component_id – ID du composant

DELETE /api/component-lists/(str: slug)/components/(str: component_slug)

Disassociate a component from the component list.

Paramètres:
  • slug (string) – Component list slug

  • component_slug (string) – Identifiant du composant

Glossaire

Modifié dans la version 4.5: Glossaries are now stored as regular components, translations and strings, please use respective API instead.

Tâches

Nouveau dans la version 4.4.

GET /api/tasks/

L’affichage de la liste des tâches est actuellement non disponible.

GET /api/tasks/(str: uuid)/

Renvoie des informations à propos d’une tâche

Paramètres:
  • uuid (string) – Task UUID

Objet JSON de réponse:
  • completed (boolean) – Si la tâche est achevée

  • progress (int) – Task progress in percent

  • result (object) – Task result or progress details

  • log (string) – Journal des tâches

Metrics

GET /api/metrics/

Returns server metrics.

Objet JSON de réponse:
  • units (int) – Number of units

  • units_translated (int) – Number of translated units

  • users (int) – Number of users

  • changes (int) – Nombre de modifications

  • projects (int) – Number of projects

  • components (int) – Nombre de composants

  • translations (int) – Number of translations

  • languages (int) – Number of used languages

  • checks (int) – Number of triggered quality checks

  • configuration_errors (int) – Number of configuration errors

  • suggestions (int) – Number of pending suggestions

  • celery_queues (object) – Lengths of Celery queues, see Background tasks using Celery

  • name (string) – Nom du serveur configuré

Déclencheurs de notification

Notification hooks allow external applications to notify Weblate that the VCS repository has been updated.

You can use repository endpoints for projects, components and translations to update individual repositories; see POST /api/projects/(string:project)/repository/ for documentation.

GET /hooks/update/(string: project)/(string: component)/

Obsolète depuis la version 2.6: Please use POST /api/components/(string:project)/(string:component)/repository/ instead which works properly with authentication for ACL limited projects.

Triggers update of a component (pulling from VCS and scanning for translation changes).

GET /hooks/update/(string: project)/

Obsolète depuis la version 2.6: Please use POST /api/projects/(string:project)/repository/ instead which works properly with authentication for ACL limited projects.

Triggers update of all components in a project (pulling from VCS and scanning for translation changes).

POST /hooks/github/

Special hook for handling GitHub notifications and automatically updating matching components.

Note

GitHub includes direct support for notifying Weblate: enable Weblate service hook in repository settings and set the URL to the URL of your Weblate installation.

Voir aussi

Automatically receiving changes from GitHub

For instruction on setting up GitHub integration

https://docs.github.com/en/get-started/customizing-your-github-workflow/exploring-integrations/about-webhooks

Generic information about GitHub Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/gitlab/

Special hook for handling GitLab notifications and automatically updating matching components.

Voir aussi

Automatically receiving changes from GitLab

For instruction on setting up GitLab integration

https://docs.gitlab.com/ee/user/project/integrations/webhooks.html

Generic information about GitLab Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/bitbucket/

Special hook for handling Bitbucket notifications and automatically updating matching components.

Voir aussi

Automatically receiving changes from Bitbucket

For instruction on setting up Bitbucket integration

https://support.atlassian.com/bitbucket-cloud/docs/manage-webhooks/

Generic information about Bitbucket Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/pagure/

Nouveau dans la version 3.3.

Special hook for handling Pagure notifications and automatically updating matching components.

Voir aussi

Automatically receiving changes from Pagure

For instruction on setting up Pagure integration

https://docs.pagure.org/pagure/usage/using_webhooks.html

Generic information about Pagure Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/azure/

Nouveau dans la version 3.8.

Special hook for handling Azure DevOps notifications and automatically updating matching components.

Note

Please make sure that Resource details to send is set to All, otherwise Weblate will not be able to match your Azure repository.

Voir aussi

Automatically receiving changes from Azure Repos

For instruction on setting up Azure integration

https://learn.microsoft.com/en-us/azure/devops/service-hooks/services/webhooks?view=azure-devops

Generic information about Azure DevOps Web Hooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/gitea/

Nouveau dans la version 3.9.

Special hook for handling Gitea Webhook notifications and automatically updating matching components.

Voir aussi

Automatically receiving changes from Gitea Repos

For instruction on setting up Gitea integration

https://docs.gitea.io/en-us/webhooks/

Generic information about Gitea Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/gitee/

Nouveau dans la version 3.9.

Special hook for handling Gitee Webhook notifications and automatically updating matching components.

Voir aussi

Automatically receiving changes from Gitee Repos

For instruction on setting up Gitee integration

https://gitee.com/help/categories/40

Generic information about Gitee Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

Exportations

Weblate provides various exports to allow you to further process the data.

GET /exports/stats/(string: project)/(string: component)/
Paramètres de requête:
  • format (string) – Output format: either json or csv

Obsolète depuis la version 2.6: Please use GET /api/components/(string:project)/(string:component)/statistics/ and GET /api/translations/(string:project)/(string:component)/(string:language)/statistics/ instead; it allows access to ACL controlled projects as well.

Retrieves statistics for given component in given format.

Exemple de requête :

GET /exports/stats/weblate/main/ HTTP/1.1
Host: example.com
Accept: application/json, text/javascript

Exemple de réponse :

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

[
    {
        "code": "cs",
        "failing": 0,
        "failing_percent": 0.0,
        "fuzzy": 0,
        "fuzzy_percent": 0.0,
        "last_author": "Michal Čihař",
        "last_change": "2012-03-28T15:07:38+00:00",
        "name": "Czech",
        "total": 436,
        "total_words": 15271,
        "translated": 436,
        "translated_percent": 100.0,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/cs/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/cs/"
    },
    {
        "code": "nl",
        "failing": 21,
        "failing_percent": 4.8,
        "fuzzy": 11,
        "fuzzy_percent": 2.5,
        "last_author": null,
        "last_change": null,
        "name": "Dutch",
        "total": 436,
        "total_words": 15271,
        "translated": 319,
        "translated_percent": 73.2,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/nl/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/nl/"
    },
    {
        "code": "el",
        "failing": 11,
        "failing_percent": 2.5,
        "fuzzy": 21,
        "fuzzy_percent": 4.8,
        "last_author": null,
        "last_change": null,
        "name": "Greek",
        "total": 436,
        "total_words": 15271,
        "translated": 312,
        "translated_percent": 71.6,
        "translated_words": 3201,
        "url": "http://hosted.weblate.org/engage/weblate/el/",
        "url_translate": "http://hosted.weblate.org/projects/weblate/main/el/"
    }
]

Flux RSS

Changes in translations are exported in RSS feeds.

GET /exports/rss/(string: project)/(string: component)/(string: language)/

Retrieves RSS feed with recent changes for a translation.

GET /exports/rss/(string: project)/(string: component)/

Retrieves RSS feed with recent changes for a component.

GET /exports/rss/(string: project)/

Retrieves RSS feed with recent changes for a project.

GET /exports/rss/language/(string: language)/

Retrieves RSS feed with recent changes for a language.

GET /exports/rss/

Retrieves RSS feed with recent changes for Weblate instance.

Voir aussi

RSS on Wikipedia