Weblate의 REST API

API는 /api/ URL에서 접근할 수 있으며 Django REST framework 를 기반으로 합니다. 직접 사용하거나 Weblate 클라이언트 를 통해 사용할 수 있습니다.

API는 /api/schema/ URL에서 OpenAPI 3.1을 사용하여 문서화되어 있으며, /api/docs/ 에서 탐색할 수 있습니다.

참고

OpenAPI는 기능 미리보기로 제공됩니다. 현재 문서는 아직 불완전할 수 있으며 변경될 수 있습니다. API에 대한 더 자세한 정보는 아래 문서를 참조하세요.

인증 및 일반 매개변수

읽기 전용 API는 REQUIRE_LOGIN 이 켜져 있지 않은 한 인증 없이 사용할 수 있습니다. 인증되지 않은 요청은 엄격히 제한되므로 (기본적으로 하루 100회 요청) 인증을 사용하는 것이 권장됩니다.

The authentication uses a token, which you can get in your profile. Use it in the Authorization header with the Token or Bearer scheme. Unsupported schemes, such as Basic, return 401 Unauthorized, even for public endpoints or when you are signed in using a browser session.

ANY /

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

Query Parameters:
  • format – Response format (overrides Accept). Possible values depend on REST framework setup, by default json, csv and api are supported. The latter provides a web browser interface for the API.

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

  • page_size – Return the given number of items per request. The default is 50 and the maximum is 1000. For the units endpoints the default is 100 with a maximum of 10000. The default value is also configurable using the PAGE_SIZE setting.

Request Headers:
  • Accept – the response content type depends on Accept header

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

Response Headers:
Response JSON Object:
  • 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 the API

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

Status Codes:

인증 토큰

버전 4.10에서 변경: 프로젝트 범위 토큰은 4.10 릴리스에서 도입되었습니다.

각 사용자는 사용자 프로필에서 얻을 수 있는 개인 액세스 토큰을 가지고 있습니다. 새로 생성된 사용자 토큰에는 wlu_ 접두사가 있습니다.

특정 프로젝트에 대한 API 접근만을 위한 프로젝트 범위 토큰을 만들 수 있습니다. 이러한 토큰은 wlp_ 접두사로 식별할 수 있습니다.

인증 예시

요청 예시:

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

응답 예시:

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/"
}

CURL 예시:

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

매개변수 전달 예시

POST 메서드의 경우 매개변수를 양식 제출 (application/x-www-form-urlencoded) 또는 JSON (application/json)으로 지정할 수 있습니다.

양식 요청 예시:

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 요청 예시:

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"}

CURL 예시:

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

CURL JSON 예시:

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

구성요소 및 분류

카테고리 안에 중첩된 구성요소에 접근하려면 분류 이름을 슬래시로 구분된 구성요소 이름으로 URL 인코딩해야 합니다. 예를 들어 docs 분류에 있는 usagedocs%252Fusage 로 사용해야 합니다. 이 경우 전체 URL은 예를 들어 https://example.com/api/components/hello/docs%252Fusage/repository/ 가 됩니다.

API 속도 제한

API 요청은 속도 제한이 적용됩니다. 기본 설정에서는 익명 사용자는 하루 100회, 인증된 사용자는 시간당 5000회로 제한됩니다.

Configure the default limits in settings.py using API_RATELIMIT_ANON and API_RATELIMIT_USER.

Docker 컨테이너에서는 WEBLATE_API_RATELIMIT_ANONWEBLATE_API_RATELIMIT_USER 를 사용하여 설정할 수 있습니다.

Use API_RATELIMIT_USER_OVERRIDES to give an automation account a different limit. Use API_RATELIMIT_IP_OVERRIDES for individual IP addresses or networks, including anonymous CI clients:

API_RATELIMIT_USER_OVERRIDES = {"automation": "20000/hour"}
API_RATELIMIT_IP_OVERRIDES = {
    "192.0.2.42": None,
    "198.51.100.0/24": "10000/hour",
    "2001:db8::/48": "10000/hour",
}

An explicit username override takes precedence over IP rules. Otherwise, the most specific matching network applies; an individual address is equivalent to a single-address network. A value of None exempts matching requests from API rate limits, including the anonymous limit. Authentication and permissions still apply: an exemption does not grant access to private projects or write operations.

Limits are counted per authenticated user, or per client IP for anonymous requests. Clients within a network do not share a single budget. Each override rule and rate has a separate budget, so changing a rule or rate starts a new budget. Requests without an override use the default limits.

IP rules use the client address resolved by Weblate. Behind a reverse proxy, configure IP_BEHIND_REVERSE_PROXY, IP_PROXY_HEADER, and IP_PROXY_OFFSET correctly. The trusted proxy must supply the client address, and untrusted clients must not be able to bypass it. Exempting a shared proxy address can exempt all clients using that proxy.

In Docker, configure the equivalent JSON mappings using WEBLATE_API_RATELIMIT_USER_OVERRIDES and WEBLATE_API_RATELIMIT_IP_OVERRIDES. Use JSON null for exemptions.

속도 제한 상태는 다음 헤더에 보고됨:

X-RateLimit-Limit

수행할 수 있는 허용된 요청 수

X-RateLimit-Remaining

수행해야 할 남은 요청 수

X-RateLimit-Reset

속도 제한 창이 재설정될 때까지의 시간(초)

Requests exempt from rate limiting do not include these headers.

버전 4.1에서 변경: 속도 제한 상태 헤더가 추가되었습니다.

오류 응답

버전 5.10에서 변경: 이 릴리스 이전에는 오류 응답이 엔드포인트별로 달랐습니다.

Weblate 오류 응답은 Error Response Format 에 기반하여 포맷됩니다.

API 진입점

GET /api/

The API root entry point.

요청 예시:

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

응답 예시:

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/"
}

사용자

Added in 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.

Query Parameters:
  • username (string) – Username to search for

  • id (int) – User ID to search for

  • email (string) – Email to search for (case-insensitive, exact match). Requires user.view or user.edit permission; the parameter is ignored for unprivileged users.

Username searches by users without the global user.view or user.edit permission exclude bot accounts other than the caller’s own account.

더 보기

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

POST /api/users/

Creates a new user.

Requires the global user.edit permission. See 접근 제어 for the user management permission model.

매개변수:
  • username (string) – 사용자 이름

  • full_name (string) – User full name

  • email (string) – User email

  • 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.

매개변수:
  • username (string) – User’s username

Response JSON Object:
  • 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

  • last_login (string) – date the user last signed in

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

  • profile (object) – user profile preferences; see 사용자 프로필. Returned only with the user.view or user.edit permission.

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/"
    ],
    "profile": {
        "language": "en",
        "languages": [
            "http://example.com/api/languages/cs/"
        ],
        "secondary_languages": [],
        "translated": 42,
        "suggested": 3,
        "uploaded": 1,
        "commented": 5,
        "theme": "auto",
        "hide_completed": false,
        "secondary_in_zen": true,
        "hide_source_secondary": false,
        "wide_tables": false,
        "listing_columns": ["untranslated", "untranslated_words", "untranslated_chars", "nottranslated", "checks", "suggestions", "comments"],
        "editor_link": "",
        "translate_mode": 0,
        "zen_mode": 0,
        "special_chars": "",
        "nearby_strings": 10,
        "auto_watch": true,
        "contribute_personal_tm": true,
        "dashboard_view": 1,
        "dashboard_component_list": null,
        "watched": [],
        "website": "https://example.com/",
        "contact": "",
        "liberapay": "",
        "fediverse": "",
        "codesite": "",
        "github": "",
        "twitter": "",
        "linkedin": "",
        "location": "",
        "company": "",
        "public_email": "",
        "commit_email": "",
        "commit_name": 0,
        "last_2fa": ""
    },
    "is_superuser": true,
    "is_active": true,
    "is_bot": false,
    "date_joined": "2020-03-29T18:42:42.617681Z",
    "url": "http://example.com/api/users/exampleusername/",
    "contributions_url": "http://example.com/api/users/exampleusername/contributions/",
    "statistics_url": "http://example.com/api/users/exampleusername/statistics/"
}
PUT /api/users/(str: username)/

Changes the user parameters.

Requires the global user.edit permission unless a user is updating their own account or profile fields. See 접근 제어 for the user management permission model.

매개변수:
  • username (string) – User’s username

Response JSON Object:
  • 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

  • profile (object) – updated profile preferences when included in the request; see 사용자 프로필

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

Changes the user parameters.

Requires the global user.edit permission unless a user is updating their own account or profile fields. See 접근 제어 for the user management permission model.

매개변수:
  • username (string) – User’s username

Response JSON Object:
  • 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

  • profile (object) – updated profile preferences when included in the request; see 사용자 프로필

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

Deletes all user information and marks the user inactive.

Requires the global user.edit permission. See 접근 제어 for the user management permission model.

매개변수:
  • username (string) – User’s username

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

Associate groups with a user.

Requires the global user.edit permission. See 접근 제어 for the user management permission model. This permission authorizes membership changes for every team, including project and workspace teams; no separate permission over the target team is required.

매개변수:
  • username (string) – User’s username

Form Parameters:
  • string group_id – The unique group ID

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

Added in version 4.13.1.

Remove user from a group.

Requires the global user.edit permission. See 접근 제어 for the user management permission model. This permission authorizes membership changes for every team, including project and workspace teams; no separate permission over the target team is required.

매개변수:
  • username (string) – User’s username

Form Parameters:
  • string group_id – The unique group ID

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

List statistics of a user.

매개변수:
  • username (string) – User’s username

Response JSON Object:
  • translated (int) – Number of translations by user

  • suggested (int) – Number of suggestions by user

  • uploaded (int) – Number of uploads by user

  • commented (int) – Number of comments by user

  • languages (int) – Number of languages user can translate

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

List translations with contributions from a user.

매개변수:
  • username (string) – User’s username

Response JSON Object:
GET /api/users/(str: username)/notifications/

List subscriptions of a user.

매개변수:
  • username (string) – User’s username

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

Associate subscriptions with a user.

매개변수:
  • username (string) – User’s username

Request JSON Object:
  • 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.

매개변수:
  • username (string) – User’s username

  • subscription_id (int) – ID of notification registered

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

Edit a subscription associated with a user.

매개변수:
  • username (string) – User’s username

  • subscription_id (int) – ID of notification registered

Request JSON Object:
  • 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.

매개변수:
  • username (string) – User’s username

  • subscription_id (int) – ID of notification registered

Request JSON Object:
  • 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.

매개변수:
  • username (string) – User’s username

  • subscription_id – Name of notification registered

  • subscription_id – int

사용자 프로필

Added in version 2026.8.

The user API exposes profile preferences in a nested profile object. The object is returned on GET /api/users/(str:username)/ only for callers with the user.view or user.edit permission. Users without those permissions can still update their own profile through PATCH /api/users/(str:username)/; the response then includes the updated profile object.

Profile fields mirror the settings described in 사용자 프로필.

그룹

Added in 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.

더 보기

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

POST /api/groups/

Creates a new group.

매개변수:
GET /api/groups/(int: id)/

Returns information about the group.

매개변수:
  • id (int) – Group’s ID

Response JSON Object:

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/"
    ],
    "admins": [
        "http://example.com/api/users/exampleusername/"
    ]
}
PUT /api/groups/(int: id)/

Changes the group parameters.

매개변수:
  • id (int) – Group’s ID

Response JSON Object:
  • 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.

매개변수:
  • id (int) – Group’s ID

Response JSON Object:
  • 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.

매개변수:
  • id (int) – Group’s ID

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

Associate roles with a group.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string role_id – The unique role ID

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

Delete role from a group.

매개변수:
  • id (int) – Group’s ID

  • role_id (int) – The unique role ID

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

Associate components with a group.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string component_id – The unique component ID

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

Delete component from a group.

매개변수:
  • id (int) – Group’s ID

  • component_id (int) – The unique component ID

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

Associate projects with a group.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string project_id – The unique project ID

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

Delete project from a group.

매개변수:
  • id (int) – Group’s ID

  • project_id (int) – The unique project ID

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

Associate languages with a group.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string language_code – The unique language code

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

Delete language from a group.

매개변수:
  • id (int) – Group’s ID

  • language_code (string) – The unique language code

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

Associate componentlists with a group.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string component_list_id – The unique componentlist ID

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

Delete componentlist from a group.

매개변수:
  • id (int) – Group’s ID

  • component_list_id (int) – The unique componentlist ID

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

Added in version 5.5.

Add user to team admins.

매개변수:
  • id (int) – Group’s ID

Form Parameters:
  • string user_id – The user’s ID

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

Added in version 5.5.

Delete user from team admins.

매개변수:
  • id (int) – Group’s ID

  • user_id (integer) – The user’s ID

역할

GET /api/roles/

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

더 보기

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

POST /api/roles/

Creates a new role.

매개변수:
  • name (string) – Role name

  • permissions (array) – List of codenames of permissions

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

Returns information about the role.

매개변수:
  • id (int) – Role’s ID

Response JSON Object:
  • name (string) – Role name

  • 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.

매개변수:
  • id (int) – Role’s ID

Response JSON Object:
  • name (string) – Role name

  • permissions (array) – list of codenames of permissions

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

Changes the role parameters.

매개변수:
  • id (int) – Role’s ID

Response JSON Object:
  • name (string) – Role name

  • permissions (array) – list of codenames of permissions

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

Deletes the role.

매개변수:
  • id (int) – Role’s ID

언어

GET /api/languages/

Returns a list of all languages.

더 보기

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

POST /api/languages/

Creates a new language.

매개변수:
  • code (string) – 언어명

  • name (string) – 언어명

  • direction (string) – 텍스트 방향

  • population (int) – 사용자 수

  • plural (object) – Language plural formula and number

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

Returns information about the language.

매개변수:
  • language (string) – 언어 코드

Response JSON Object:
  • code (string) – 언어 코드

  • direction (string) – 텍스트 방향

  • plural (object) – Object of language plural information

  • aliases (array) – Array of aliases for language

Request JSON Object:
  • population (int) – 사용자 수

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.

매개변수:
  • language (string) – Language’s code

Request JSON Object:
  • name (string) – 언어명

  • direction (string) – 텍스트 방향

  • population (int) – 사용자 수

  • plural (object) – Language plural details

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

Changes the language parameters.

매개변수:
  • language (string) – Language’s code

Request JSON Object:
  • name (string) – 언어명

  • direction (string) – 텍스트 방향

  • population (int) – 사용자 수

  • plural (object) – Language plural details

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

Deletes the language.

매개변수:
  • language (string) – Language’s code

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

Returns statistics for a language.

매개변수:
  • language (string) – 언어 코드

더 보기

Returned attributes are described in 통계.

프로젝트

GET /api/projects/

Returns a list of all projects.

더 보기

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

POST /api/projects/

Creates a new project.

매개변수:

Omit access_control to use the configured default. Explicit non-default access control requires a superuser unless a billing plan determines the value. On Hosted Weblate, Custom access control is unavailable and each translation-memory contribution setting is forced to match its corresponding usage setting.

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

Returns information about the project.

매개변수:
  • project (string) – Project URL slug

Response JSON Object:

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)/

Added in version 4.3.

Edit a project by a PATCH request.

The project value is the project slug. To avoid using a wrong identifier, use the project url returned by GET /api/projects/ or GET /api/projects/(string:project)/.

The request body accepts project fields such as instructions, license, access_control, and translation-memory settings.

Example JSON data:

{
    "instructions": "Translate consistently.",
    "license": "MIT",
    "use_shared_tm": true,
    "access_control": 100
}

Changing access_control or public_sharing requires permission to manage project access. Making a project publicly accessible can require licenses on its components when LICENSE_REQUIRED is enabled. On Hosted Weblate, Custom access control is unavailable and each translation-memory contribution setting is forced to match its corresponding usage setting.

Changing workspace moves the project. Moving a project requires permission to edit the project and the Edit workspace settings permission for the source and target workspace. The target workspace also requires the Add projects to workspace permission. Moving a project out of a workspace also requires the site-wide Add new projects permission. See 프로젝트 생성 및 이동.

매개변수:
PUT /api/projects/(string: project)/

Added in version 4.3.

Edit a project by a PUT request.

Changing workspace follows the same permission checks as PATCH /api/projects/(string:project)/.

매개변수:
DELETE /api/projects/(string: project)/

Deletes a project.

매개변수:
  • project (string) – Project URL slug

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

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

매개변수:
  • project (string) – Project URL slug

Response JSON Object:
GET /api/projects/(string: project)/file/

Added in version 5.5.

Downloads all available translations associated with the project as an archive file using the requested format and language.

매개변수:
  • project (string) – Project URL slug

Query Parameters:
  • format (string) – The archive format to use; If not specified, defaults to zip; Supported formats: zip and zip:CONVERSION where CONVERSION is one of converters listed at 번역 다운로드.

  • language_code (string) – The language code to download; If not specified, all languages are included.

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

Returns information about the 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/.

Repository status includes repositories where the user has a VCS permission on every component sharing that repository. Repositories blocked by linked components in other projects are omitted and reported separately.

매개변수:
  • project (string) – Project URL slug

Response JSON Object:
  • 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

  • included_components (array) – full paths of project components included in the status

  • skipped_components (array) – full paths of project components omitted from the status

  • permission_blockers (array) – full paths of components preventing access to omitted repositories

Example JSON data:

{
    "included_components": ["hello/app"],
    "needs_commit": true,
    "needs_merge": false,
    "needs_push": true,
    "permission_blockers": ["shared/glossary"],
    "skipped_components": ["hello/glossary"]
}
POST /api/projects/(string: project)/repository/

Performs given operation on the VCS repository.

Repository operations process repositories where the user has the requested VCS permission on every component sharing that repository. Repositories blocked by linked components in other projects are skipped. The request is denied when no repository is eligible for the operation.

매개변수:
  • project (string) – Project URL slug

Request JSON Object:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup, file-sync, file-scan

  • background (boolean) – Schedule the operation as a background task instead of waiting for it to finish. Defaults to false.

Response JSON Object:
  • result (boolean) – result of a synchronous operation

  • included_components (array) – full paths of project components included in the operation

  • skipped_components (array) – full paths of project components omitted from the operation

  • permission_blockers (array) – full paths of components preventing access to omitted repositories

  • detail (string) – Status of a background operation

  • task_url (string) – URL for tracking a background operation; see GET /api/tasks/(str:uuid)/

With background set to true, the endpoint returns 202 Accepted. Repeating an identical queued operation returns the existing task URL. A conflicting operation returns 423 Locked and the active task URL when available. Eligible project repositories are processed sequentially in one task.

CURL 예시:

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

JSON 요청 예시:

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

{
    "included_components": ["hello/app"],
    "permission_blockers": ["shared/glossary"],
    "result": true,
    "skipped_components": ["hello/glossary"]
}

Background JSON request example:

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

{"operation":"pull","background":true}

Background JSON response example:

HTTP/1.0 202 Accepted
Content-Type: application/json

{
    "detail": "Repository operation has been queued.",
    "included_components": ["hello/app"],
    "permission_blockers": ["shared/glossary"],
    "skipped_components": ["hello/glossary"],
    "task_url": "https://example.com/api/tasks/01234567-89ab-cdef-0123-456789abcdef/"
}
GET /api/projects/(string: project)/components/

Returns a list of translation components in the given project.

매개변수:
  • project (string) – Project URL slug

Response JSON Object:
POST /api/projects/(string: project)/components/

버전 4.3에서 변경: The zipfile and docfile parameters are now accepted for VCS-less components, see 로컬 파일.

버전 4.6에서 변경: The cloned repositories are now automatically shared within a project using Weblate 내부 URL. Use disable_autoshare to turn off this.

Creates translation components in the given project.

힌트

Use Weblate 내부 URL when creating multiple components from a single VCS repository.

참고

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

매개변수:
  • project (string) – Project URL slug

Form Parameters:
  • file zipfile – ZIP file to upload into Weblate for translations initialization

  • file docfile – Document to translate

  • string from_component – Optional source component reference used to duplicate the new component. Accepts either a numeric component ID or a full Weblate component path. When provided, the new component inherits the source component configuration and translations into a new local repository. Repository fields such as repo, vcs, branch, push, and push_branch can not be combined with this option.

  • boolean disable_autoshare – Disables automatic repository sharing via Weblate 내부 URL.

Request JSON Object:
Response JSON Object:

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",
        "file_format_params": {
            "po_line_wrap": 65535,
            "po_no_location": true
        },
        "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",
    "file_format_params": {
        "po_line_wrap": 65535,
        "po_no_location": true
    },
    "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

{
    "from_component": "hello/weblate",
    "name": "Weblate",
    "slug": "weblate"
}

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",
    "file_format_params": {
        "po_line_wrap": 65535,
        "po_no_location": true
    },
    "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.

매개변수:
  • project (string) – Project URL slug

Response JSON Object:
  • results (array) – array of translation statistics objects

  • language (string) – language name

  • code (string) – language code

  • total (int) – total number of strings

  • translated (int) – number of translated strings

  • translated_percent (float) – percentage of translated strings

  • 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.

매개변수:
  • project (string) – Project URL slug

더 보기

Returned attributes are described in 통계.

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

Added in version 2026.8.

Returns translation metrics for the project components visible to the caller. Components are identified by their project-relative path and the result is grouped by component and language. When multiple components have the same project-relative path, @ and the component ID are appended to each colliding path.

The OpenMetrics representation exposes weblate_translation_info and weblate_* gauges compatible with the project translation statistics. Strings containing suggestions use weblate_strings_with_suggestions to distinguish them from the server-wide weblate_suggestions object count. The CSV representation contains one row for each component, language, and numeric metric.

매개변수:
  • project (string) – Project URL slug

Query Parameters:
  • format (string) – Response format; use openmetrics or csv for monitoring and tabular output.

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

Added in version 5.0: Returns categories for a project. See GET /api/categories/(int:id)/ for field definitions.

param project:

Project URL slug

type project:

string

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

Added in version 5.3: Returns labels for a project.

param project:

Project URL slug

type project:

string

>json int id:

ID of the label

>json string name:

name of the label

>json string color:

color of the label

POST /api/projects/(string: project)/labels/

Added in version 5.3: Creates a label for a project.

param project:

Project URL slug

type project:

string

<json string name:

name of the label

<json string color:

color of the label

DELETE /api/projects/(string: project)/labels/(int: label_id)/

Added in version 5.14: Deletes a label from a project.

param project:

Project URL slug

type project:

string

param label_id:

ID of the label to delete

type label_id:

integer

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

Lists accessible reports generated directly for a project.

POST /api/projects/(string: project)/reports/

Schedules a report using the project as its scope. The request and response match POST /api/reports/; scope fields must be omitted.

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

Added in version 5.9.

Returns automatic suggestion settings for a project, consisting of the configurations defined for each translation service installed.

매개변수:
  • project (string) – Project URL slug

Response JSON Object:
  • suggestion_settings (object) – Configuration for all installed services.

POST /api/projects/(string: project)/machinery_settings/

Added in version 5.9.

Create or update the service configuration for a project.

매개변수:
  • project (string) – Project URL slug

Form Parameters:
  • string service – Service name

  • string configuration – Service configuration in JSON

GET /api/projects/(string: project)/languages/(string: language_code)/file/

버전 5.15.1에서 변경: Added ability to download ZIP file of all components translations in a project for 1 specific language.

Download a ZIP file of all translation files for a specified language_code across all components for a given project rather than downloading individual translated files and manually zipping them, with the archive named {project-slug}-{language-code}.zip and organized by component paths (e.g., component-slug/po/lang.po).

매개변수:
  • project (string) – Project URL slug

  • language_code (string) – 언어 코드

Query Parameters:
  • filter (string) – Optional case-insensitive substring to filter components by slug (e.g., ?filter=core will match components with ‘core’ anywhere in their slug); only components whose slugs contain the substring will be included in the download.

  • format (string) – The archive format to use; If not specified, defaults to zip; Supported formats: zip and zip:CONVERSION where CONVERSION is one of converters listed at 번역 다운로드.

참고

Possible responses:

  • 200 OK with the ZIP file of translations for the specified language across all components in the project. If no components have translations for the specified language, an empty ZIP file will be returned.

  • 403 Forbidden if the user does not have permission to the project.

  • 404 Not Found if the project slug does not exist.

GET /api/projects/(string: project)/languages/(string: language_code)/announcements/

Added in version 2026.6: Returns announcements for a specified language_code in a project.

param project:

Project URL slug

type project:

string

param language_code:

언어 코드

type language_code:

string

>json int id:

ID of the announcement

>json string message:

announcement text

>json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

>json date expiry:

hide after this date, ISO 8601 extended format date (optional)

>json bool notify:

send notification to subscribed users? (optional)

POST /api/projects/(string: project)/languages/(string: language_code)/announcements/

Added in version 2026.6: Creates an announcement for a specified language_code in a project.

param project:

Project URL slug

type project:

string

param language_code:

언어 코드

type language_code:

string

<json string message:

announcement text

<json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

<json date expiry:

hide after this date, ISO 8601 extended format date (optional)

<json bool notify:

send notification to subscribed users? (optional)

DELETE /api/projects/(string: project)/languages/(string: language_code)/announcements/(int: announcement_id)/

Added in version 2026.6: Deletes an announcement from a specified language_code in a project.

param project:

Project URL slug

type project:

string

param language_code:

언어 코드

type language_code:

string

param announcement_id:

ID of the announcement to delete

type announcement_id:

integer

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

Added in version 5.17: Returns announcements for a project.

param project:

Project URL slug

type project:

string

>json int id:

ID of the announcement

>json string message:

announcement text

>json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

>json date expiry:

hide after this date, ISO 8601 extended format date (optional)

>json bool notify:

send notification to subscribed users? (optional)

POST /api/projects/(string: project)/announcements/

Added in version 5.17: Creates an announcement for a project.

param project:

Project URL slug

type project:

string

<json string message:

announcement text

<json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

<json date expiry:

hide after this date, ISO 8601 extended format date (optional)

<json bool notify:

send notification to subscribed users? (optional)

DELETE /api/projects/(string: project)/announcements/(int: announcement_id)/

Added in version 5.17: Deletes an announcement from a project.

param project:

Project URL slug

type project:

string

param announcement_id:

ID of the announcement to delete

type announcement_id:

integer

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

Added in version 2026.7: Returns a list of 프로젝트 수준 백업 archives.

param project:

Project URL slug

type project:

string

>json string name:

Backup file name, for example 1718803200.zip

>json string timestamp:

Backup creation time in ISO 8601 format

>json int size:

Backup file size in bytes

POST /api/projects/(string: project)/backups/

Added in version 2026.7: Schedules creation of a new 프로젝트 수준 백업 archive. Once ready, the backup appears in GET /api/projects/(string:project)/backups/.

param project:

Project URL slug

type project:

string

>json string detail:

Result message

>json string url:

URL to list backups

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

Added in version 2026.7: Downloads a 프로젝트 수준 백업 archive.

param project:

Project URL slug

type project:

string

param backup:

Backup file name, e.g. 1718803200.zip

type backup:

string

구성요소

힌트

새 구성요소를 만들려면 POST /api/projects/(string:project)/components/ 를 사용하세요.

GET /api/components/

Returns a list of translation components.

더 보기

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

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

Returns information about the translation component.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:

Repository fields, including linked_component, are returned only with the View upstream repository location permission.

Example JSON data:

{
    "branch": "main",
    "file_format": "po",
    "file_format_params": {
        "po_line_wrap": 65535,
        "po_no_location": true
    },
    "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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

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

Request JSON Object:

Linking to another Weblate component using an internal URL requires permission to edit the referenced component. Changing 접근 제한 follows the same direct component-access restrictions as the web interface.

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 요청 예시:

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",
    "file_format_params": {
        "po_line_wrap": 65535,
        "po_no_location": true
    },
    "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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Request JSON Object:
  • branch (string) – VCS repository branch

  • file_format (string) – file format of translations

  • file_format_params (object) – parameters related to the file

  • 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) – version control system

  • vcs_params (object) – Version control parameters

  • hide_glossary_matches (boolean) – 용어집 매치 표시 안 함

  • contribute_project_tm (boolean) – 프로젝트 번역 메모리에 기여

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

Deletes a component.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
GET /api/components/(string: project)/(string: component)/file/

Added in version 4.9.

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

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Query Parameters:
  • format (string) – The archive format to use; If not specified, defaults to zip; Supported formats: zip and zip:CONVERSION where CONVERSION is one of converters listed at 번역 다운로드.

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

Returns a list of component screenshots.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
GET /api/components/(string: project)/(string: component)/lock/

Returns component lock status.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
  • 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/.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Request JSON Object:
  • lock – Boolean whether to lock or not.

CURL 예시:

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

JSON 요청 예시:

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 the VCS repository status.

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

Repository status requires component-wide permission on the component that owns the repository and every component linked to it, including components in other projects.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
  • 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.

Repository operations require component-wide permission on the component that owns the repository and every component linked to it, including components in other projects.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Request JSON Object:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup

Response JSON Object:
  • result (boolean) – result of the operation

CURL 예시:

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

JSON 요청 예시:

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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

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

Downloads template file for new translations.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

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

Returns a list of translation objects in the given component.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
POST /api/components/(string: project)/(string: component)/translations/

Creates new translation in the given component.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Request JSON Object:
  • language_code (string) – translation language code; see GET /api/languages/(string:language)/

  • from_component (array) – optional ordered list of source component references used for automatic translation. Accepts numeric component IDs or full Weblate component paths. For form submissions this field can be provided multiple times.

Response JSON Object:
  • result (object) – new translation object created

CURL 예시:

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

JSON 요청 예시:

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",
    "from_component": ["hello/weblate", 123]
}

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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

더 보기

Returned attributes are described in 통계.

Returns projects linked with a component.

Component managers see every linked project. Other callers see only linked projects they can access.

Added in version 4.5.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Response JSON Object:
POST /api/components/(string: project)/(string: component)/links/

Associate project with a component.

This requires permission to edit the component and the target project.

Added in version 4.5.

버전 5.17에서 변경.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

Form Parameters:
  • string project_slug – 프로젝트 슬러그

  • int category_id – Category ID in the target project (optional). The category must belong to the specified project.

Remove association of a project with a component.

Added in version 4.5.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • project_slug (string) – Slug of the project to remove

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

Lists accessible reports generated directly for a component.

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

Schedules a report using the component as its scope. The request and response match POST /api/reports/; scope fields must be omitted.

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

Added in version 5.17: Returns announcements for a component.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

>json int id:

ID of the announcement

>json string message:

announcement text

>json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

>json date expiry:

hide after this date, ISO 8601 extended format date (optional)

>json bool notify:

send notification to subscribed users? (optional)

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

Added in version 5.17: Creates an announcement for a component.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

<json string message:

announcement text

<json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

<json date expiry:

hide after this date, ISO 8601 extended format date (optional)

<json bool notify:

send notification to subscribed users? (optional)

DELETE /api/components/(string: project)/(string: component)/announcements/(int: announcement_id)/

Added in version 5.17: Deletes an announcement from a component.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

param announcement_id:

ID of the announcement to delete

type announcement_id:

integer

번역

GET /api/translations/

Returns a list of translations.

더 보기

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 the translation.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Response JSON Object:

Example JSON data:

{
    "component": {
        "branch": "main",
        "file_format": "po",
        "file_format_params": {
            "po_line_wrap": 65535,
            "po_no_location": true
        },
        "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)/

Deletes a translation.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

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.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Response JSON Object:
GET /api/translations/(string: project)/(string: component)/(string: language)/units/

Returns a list of translation units.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

  • q (string) – Search query string 검색 (optional)

Response JSON Object:
POST /api/translations/(string: project)/(string: component)/(string: language)/units/

Add new unit.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Request JSON Object:
  • key (string) – Monolingual translations: Key of translation unit

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

  • context (string) – Bilingual translations: Context of a translation unit

  • source (array) – Bilingual translations: Source strings (use single string if not creating plural)

  • target (array) – Bilingual translations: Target strings (use single string if not creating plural)

  • state (int) – String state; see GET /api/units/(int:id)/

Response JSON Object:

Creating a unit in the approved state requires permission to review strings.

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

버전 5.13에서 변경: The filter_type parameter is no longer supported and filtering is done by the q parameter.

Trigger automatic translation.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Request JSON Object:
  • mode (string) – Automatic translation mode; one of suggest, translate, fuzzy, approved

  • q (string) – Automatic translation search string, see 문자열 검색.

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

  • component (string) – Component ID (always accepted); when the project has 30 or more eligible source components, a component slug or project/component path is also accepted; leave blank to use all components in the project

  • engines (array) – Machine translation engines to use when auto_source is mt

  • threshold (int) – Score threshold for machine translation (1–100)

Response JSON Object:
  • details (string) – Human-readable summary of the translation result

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 번역 다운로드).

참고

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.

Response Headers:
Request Headers:
  • If-Modified-Since – Skips response if the file has not been modified since that time.

Query Parameters:
  • format – File format to use; if not specified no format conversion happens; see 번역 다운로드 for supported formats

  • q (string) – Filter downloaded strings, see 검색 페이지, only applicable when conversion is in place (format is specified).

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

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

Upload new file with translations.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Form Parameters:
  • string conflicts – How to deal with conflicts (ignore, replace-translated or replace-approved), see 충돌 처리

  • file file – Uploaded file

  • string author_email – Author e-mail

  • string author_name – Author name

  • string method – Upload method (translate, approve, suggest, fuzzy, replace, source, add), see 가져오기 방법

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

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 the VCS repository status.

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

Repository status requires component-wide permission on the component that owns the repository and every component linked to it, including components in other projects. A permission limited to the requested language is not sufficient.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

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.

Repository operations require component-wide permission on the component that owns the repository and every component linked to it, including components in other projects. A permission limited to the requested language is not sufficient.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

Request JSON Object:
  • operation (string) – Operation to perform: one of push, pull, commit, reset, cleanup

Response JSON Object:
  • result (boolean) – result of the operation

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

Returns detailed translation statistics.

매개변수:
  • project (string) – Project URL slug

  • component (string) – Component URL slug

  • language (string) – 번역 언어 코드

더 보기

Returned attributes are described in 통계.

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

Added in version 5.17: Returns announcements for a translation.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

param language:

번역 언어 코드

type language:

string

>json int id:

ID of the announcement

>json string message:

announcement text

>json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

>json date expiry:

hide after this date, ISO 8601 extended format date (optional)

>json bool notify:

send notification to subscribed users? (optional)

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

Added in version 5.17: Creates an announcement for a translation.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

param language:

번역 언어 코드

type language:

string

<json string message:

announcement text

<json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

<json date expiry:

hide after this date, ISO 8601 extended format date (optional)

<json bool notify:

send notification to subscribed users? (optional)

DELETE /api/translations/(string: project)/(string: component)/(string: language)/announcements/(int: announcement_id)/

Added in version 5.17: Deletes an announcement from a translation.

param project:

Project URL slug

type project:

string

param component:

Component URL slug

type component:

string

param language:

번역 언어 코드

type language:

string

param announcement_id:

ID of the announcement to delete

type announcement_id:

integer

메모리

Added in version 4.14.

GET /api/memory/

Returns a list of memory results.

Query Parameters:
  • source – Case-insensitive substring filter on source text (optional)

  • source_language – Source language code filter (optional)

  • target_language – Target language code filter (optional)

  • project – Project slug filter (optional)

POST /api/memory/lookup/

Looks up translation memory matches for the provided source strings.

Query Parameters:
  • source_language – Source language code

  • target_language – Target language code

  • project – Project slug filter (optional)

  • exact – Return exact matches only and skip fuzzy matching (optional)

Request JSON Object:
  • strings (array) – List of source strings to look up

Response JSON Object:
  • results (array) – Ordered lookup results with the best match for each query or null when no match was found

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

Deletes a memory object

매개변수:
  • memory_object_id – Memory Object ID

단위

단위(unit) 는 원문 문자열과 해당 번역 문자열을 쌍으로 이루며 관련 메타데이터도 포함하는 번역의 단일 조각입니다. 이 용어는 Translate Toolkit 및 XLIFF의 translate.storage.base.TranslationUnit 에서 유래되었습니다.

GET /api/units/

Returns a list of translation units.

매개변수:
  • q (string) – Search query string 검색 (optional)

더 보기

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

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

버전 4.3에서 변경: The target and source are now arrays to properly handle plural strings.

버전 5.6에서 변경: The last_updated attribute is now exposed.

Returns information about the translation unit.

매개변수:
  • id (int) – Unit ID

Response JSON Object:
  • translation (string) – URL of a related translation object

  • source (array) – source string

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

  • target (array) – target string

  • 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) – whether the unit is fuzzy or marked for review

  • translated (boolean) – whether the unit is translated

  • approved (boolean) – whether the translation is approved

  • position (int) – unit position in translation file

  • has_suggestion (boolean) – whether the unit has suggestions

  • has_comment (boolean) – whether the unit has comments

  • has_failing_check (boolean) – whether the unit has failing checks

  • num_words (int) – number of source words

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

  • id (int) – unit identifier

  • explanation (string) – String explanation, available on source units, see 원문 문자열에 대한 추가 정보

  • extra_flags (string) – Additional string flags, available on source units, see 플래그를 사용한 동작 사용자 지정

  • 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

  • last_updated (timestamp) – last string update

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

Added in version 4.3.

Performs partial update on translation unit.

매개변수:
  • id (int) – Unit ID

Request JSON Object:
PUT /api/units/(int: id)/

Added in version 4.3.

Performs full update on translation unit.

매개변수:
  • id (int) – Unit ID

Request JSON Object:
DELETE /api/units/(int: id)/

Added in version 4.3.

Deletes a translation unit.

매개변수:
  • id (int) – Unit ID

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

Added in version 5.11.

Returns a list of all target translation units for the given source translation unit.

POST /api/units/(int: id)/comments/

Added in version 5.12.

Create a new comment on the given translation unit.

매개변수:
  • id (int) – Unit ID

Request JSON Object:
  • scope (string) – comment scope - global, translation (available on all non-source units), report (need review workflow enabled, see 전담 검토자)

  • comment (string) – content of the new comment, you can use Markdown and mention users by @username.

  • user_email (string) – commenter’s email, can be set only by project admins and defaults to the authenticated user.

  • timestamp (string) – creation timestamp of the comment, can be set only by project admins and defaults to now.

Response JSON Object:
  • id (int) – comment identifier

  • comment (string) – content of the new comment

  • user (string) – URL of the commenter’s object

  • timestamp (string) – creation timestamp of the comment

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

Added in version 5.15.

Returns a list of comments on a given translation unit

매개변수:
  • id (int) – Unit ID

Response JSON Object:
  • id (int) – comment identifier

  • comment (string) – content of the comment

  • timestamp (string) – creation timestamp of the comment

  • user (string) – URL of the commenter’s object

POST /api/units/(int: id)/suggestions/

Added in version 2026.8.

Create a new suggestion on the given translation unit.

Requires authentication and the Add suggestion permission on the translation. Suggestions must be enabled on the translation, the translation must not be read-only, and the user must have signed any required contributor agreement.

매개변수:
  • id (int) – Unit ID

Request JSON Object:
  • target (array) – suggested translation text as a list of plural forms; use a single-element array for non-plural strings

Response JSON Object:
  • id (int) – suggestion identifier

  • target (array) – suggested translation text as a list of plural forms

  • unit (string) – URL of the related unit object

  • user (string) – URL of the suggester’s object

  • timestamp (string) – creation timestamp of the suggestion

  • votes (int) – net vote count for the suggestion

Users who also have the Vote on suggestion permission automatically upvote their suggestion when it is created.

When the same suggestion already exists from another user and the caller has the Vote on suggestion permission, the existing suggestion is upvoted instead and the response uses the same format as POST /api/suggestions/(int:id)/vote/ (HTTP status 200 instead of 201).

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

Added in version 2026.8.

Returns a paginated list of suggestions on a given translation unit.

매개변수:
  • id (int) – Unit ID

Response JSON Object:

제안

GET /api/suggestions/

Added in version 2026.8.

Returns a paginated list of suggestions the user has access to, ordered by creation time (most recent first).

더 보기

Suggestion object attributes are documented at GET /api/suggestions/(int:id)/.

Response JSON Object:
GET /api/suggestions/(int: id)/

Added in version 2026.8.

Returns information about a suggestion.

매개변수:
  • id (int) – Suggestion ID

Response JSON Object:
  • id (int) – suggestion identifier

  • target (array) – suggested translation text as a list of plural forms

  • unit (string) – URL of the related unit object

  • user (string) – URL of the suggester’s object, or null for anonymous suggestions

  • timestamp (string) – creation timestamp of the suggestion

  • votes (int) – net vote count for the suggestion

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

Added in version 2026.8.

Delete or reject a suggestion.

Requires the Delete suggestion permission on the related translation, or ownership of the suggestion.

매개변수:
  • id (int) – Suggestion ID

Request JSON Object:
  • rejection_reason (string) – optional reason for rejecting the suggestion

  • is_spam (boolean) – whether to report the suggestion as spam

The request body is optional. When is_spam is true, the suggestion content is reported to the antispam service.

POST /api/suggestions/(int: id)/accept/

Added in version 2026.8.

Accept a suggestion and apply it to the translation unit.

Requires the Accept suggestion permission on the related translation unit.

매개변수:
  • id (int) – Suggestion ID

Request JSON Object:
  • approve (boolean) – whether to mark the translation as approved after accepting; requires the Review strings permission and review workflow enabled (see 전담 검토자)

Response JSON Object:
  • result (string) – accepted when the suggestion was accepted

POST /api/suggestions/(int: id)/vote/

Added in version 2026.8.

Vote for or against a suggestion.

Requires the Vote on suggestion permission and voting enabled on the related translation (see 제안 투표).

매개변수:
  • id (int) – Suggestion ID

Request JSON Object:
  • value (int) – 1 to vote for the suggestion or -1 to vote against it

Response JSON Object:
  • result (string) – voted when the suggestion remains open; accepted when auto-accept applied it

  • suggestion (object) – updated suggestion object when result is voted; null when result is accepted

변경 사항

GET /api/changes/

버전 4.1에서 변경: Filtering of changes was introduced in the 4.1 release.

Returns a list of translation changes.

더 보기

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

Query Parameters:
  • user (string) – Username of the user to filter by

  • action (int) – Action to filter, can be used several times; see Selected change events for available values

  • 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 the translation change.

매개변수:
  • id (int) – Change ID

Response JSON Object:
  • 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) – event timestamp

  • action (int) – numeric identification of action

  • action_name (string) – text description of action

  • target (string) – event changed text

  • old (string) – previous text

  • details (object) – additional details about the change

  • id (int) – change identifier

스크린샷

GET /api/screenshots/

Returns a list of screenshots.

더 보기

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

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

Returns information about the screenshot.

매개변수:
  • id (int) – Screenshot ID

Response JSON Object:
  • name (string) – name of a screenshot

  • repository_filename (string) – repository path used to match repository-based screenshot updates

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

  • file_url (string) – URL to download a file; see GET /api/screenshots/(int:id)/file/

  • units (array) – link to associated source string information; see GET /api/units/(int:id)/

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

Download the screenshot image.

매개변수:
  • id (int) – Screenshot ID

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

Replace screenshot image.

매개변수:
  • id (int) – Screenshot ID

Form Parameters:
  • file image – Uploaded file

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.

매개변수:
  • id (int) – Screenshot ID

Form Parameters:
  • string unit_id – Unit ID

Response JSON Object:
DELETE /api/screenshots/(int: id)/units/(int: unit_id)

Remove source string association with screenshot.

매개변수:
  • id (int) – Screenshot ID

  • unit_id – Source string unit ID

POST /api/screenshots/

Creates a new screenshot.

Form Parameters:
  • file image – Uploaded file

  • string name – Screenshot name

  • string project_slug – 프로젝트 슬러그

  • string component_slug – 구성요소 슬러그

  • string language_code – 언어 코드

  • string repository_filename – Optional repository path used to associate later repository updates

Response JSON Object:
  • name (string) – name of a screenshot

  • repository_filename (string) – repository path used to match repository-based screenshot updates

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

  • file_url (string) – URL to download a file; see GET /api/screenshots/(int:id)/file/

  • units (array) – link to associated source string information; see GET /api/units/(int:id)/

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

Edit partial information about screenshot.

매개변수:
  • id (int) – Screenshot ID

Response JSON Object:
  • name (string) – name of a screenshot

  • repository_filename (string) – repository path used to match repository-based screenshot updates

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

  • file_url (string) – URL to download a file; see GET /api/screenshots/(int:id)/file/

  • units (array) – link to associated source string information; see GET /api/units/(int:id)/

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

Edit full information about screenshot.

매개변수:
  • id (int) – Screenshot ID

Response JSON Object:
  • name (string) – name of a screenshot

  • repository_filename (string) – repository path used to match repository-based screenshot updates

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

  • file_url (string) – URL to download a file; see GET /api/screenshots/(int:id)/file/

  • units (array) – link to associated source string information; see GET /api/units/(int:id)/

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

Delete screenshot.

매개변수:
  • id (int) – Screenshot ID

애드온

Added in version 4.4.1.

GET /api/addons/

Returns a list of add-ons the caller can manage. Site-wide add-on managers can access site-wide add-ons without gaining access to project or component add-on configuration.

더 보기

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

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

Returns information about add-on information.

매개변수:
  • id (int) – 애드온 ID

Response JSON Object:
  • name (string) – name of an add-on

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

  • configuration (object) – Optional add-on configuration

더 보기

애드온

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

Creates a new add-on.

매개변수:
  • project_slug (string) – 프로젝트 슬러그

  • component_slug (string) – 구성요소 슬러그

Request JSON Object:
  • name (string) – name of an add-on

  • configuration (object) – Optional add-on configuration

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

Edit partial information about add-on.

매개변수:
  • id (int) – 애드온 ID

Response JSON Object:
  • configuration (object) – Optional add-on configuration

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

Edit full information about add-on.

매개변수:
  • id (int) – 애드온 ID

Response JSON Object:
  • configuration (object) – Optional add-on configuration

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

Delete add-on.

매개변수:
  • id (int) – 애드온 ID

POST /api/addons/(int: id)/trigger/

Trigger a manual run of an add-on that supports manual triggering.

Added in version 5.17.1.

매개변수:
  • id (int) – 애드온 ID

구성요소 목록

Added in version 4.0.

GET /api/component-lists/

Returns a list of component lists.

더 보기

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

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

Returns information about component list.

매개변수:
  • slug (string) – Component list slug

Response JSON Object:
  • 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.

매개변수:
  • slug (string) – Component list slug

Request JSON Object:
  • 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.

매개변수:
  • slug (string) – Component list slug

Request JSON Object:
  • 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.

매개변수:
  • slug (string) – Component list slug

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

Added in version 5.0.1: List components in a component list.

param slug:

Component list slug

type slug:

string

form string component_id:

Component ID

>json array results:

array of component objects; see GET /api/components/(string:project)/(string:component)/

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

Associate component with a component list.

매개변수:
  • slug (string) – Component list slug

Form Parameters:
  • string component_id – Component ID

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

Disassociate a component from the component list.

매개변수:
  • slug (string) – Component list slug

  • component_slug (string) – 구성요소 슬러그

용어집

버전 4.5에서 변경: 용어집은 이제 일반 구성요소, 번역 및 문자열로 저장되므로 해당 API를 사용하세요.

보고서

GET /api/reports/

Lists stored reports accessible to the authenticated user. The optional kind, workspace, project, category, and component query parameters filter the result. The Manage reports permission is authoritative for the selected scope and includes reports containing data from private projects and restricted components below that scope.

POST /api/reports/

Schedules report generation and returns 202 Accepted with a task_url. The task result links to the created report. The kind is one of credits, contributor_stats, cost_estimate, or translator_work. Specify at most one of workspace, project, category, or component; omitting all of them creates a global report. Contribution reports require start and end ISO 8601 timestamps. A workspace can be selected when the user has Manage reports for it, even without access to the regular workspace page.

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

Returns report metadata, generation parameters, stored JSON data, and links to the JSON, HTML, and reStructuredText renderings.

GET /api/reports/(int: id)/json/

Downloads only the stored report data without metadata.

GET /api/reports/(int: id)/html/

Downloads an HTML rendering of the stored report.

GET /api/reports/(int: id)/rst/

Downloads a reStructuredText rendering of the stored report.

작업

Added in version 4.4.

GET /api/tasks/

Listing of the tasks is currently not available.

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

Returns information about a task.

Authentication is required.

매개변수:
  • uuid (string) – Task UUID

Response JSON Object:
  • completed (boolean) – Whether the task has completed

  • progress (int) – Task progress in percent

  • result (object) – Task result or progress details

  • log (string) – Task log

  • cancellable (boolean) – Whether the task can be cancelled

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

Cancels a running task when its cancellable property is true. Repository operation tasks cannot be cancelled because interruption can leave a repository operation incomplete.

통계

GET /api/(str: object)/statistics/

There are several statistics endpoints for objects and all of them contain same structure.

매개변수:
  • object (string) – URL path

Response JSON Object:
  • total (int) – total number of strings

  • total_words (int) – total number of words

  • total_chars (int) – total number of characters

  • last_change (timestamp) – date of last change

  • translated (int) – number of translated strings

  • translated_percent (float) – percentage of translated strings

  • translated_words (int) – number of translated words

  • translated_words_percent (float) – percentage of translated words

  • translated_chars (int) – number of translated characters

  • translated_chars_percent (float) – percentage of translated characters

  • fuzzy (int) – number of fuzzy (marked for edit) strings

  • fuzzy_words (int) – number of fuzzy (marked for edit) words

  • fuzzy_chars (int) – number of fuzzy (marked for edit) characters

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

  • fuzzy_words_percent (float) – percentage of fuzzy (marked for edit) words

  • fuzzy_chars_percent (float) – percentage of fuzzy (marked for edit) characters

  • failing (int) – number of failing checks

  • failing_percent (float) – percentage of failing checks

  • approved (int) – number of approved strings

  • approved_words (int) – number of approved words

  • approved_chars (int) – number of approved characters

  • approved_percent (float) – percentage of approved strings

  • approved_words_percent (float) – percentage of approved words

  • approved_chars_percent (float) – percentage of approved characters

  • readonly (int) – number of read-only strings

  • readonly_words (int) – number of read-only words

  • readonly – number of read-only characters

  • readonly_percent (float) – percentage of read-only strings

  • readonly_words_percent (float) – percentage of read-only words

  • readonly_char_percent (float) – percentage of read-only characters

  • suggestions (int) – number of strings with suggestions

  • comments (int) – number of strings with comments

  • name (string) – object name

  • url (string) – URL to access the object (if applicable)

  • url_translate (string) – URL to access the translation (if applicable)

  • code (string) – language code (if applicable)

지표

GET /api/metrics/

Returns server metrics.

버전 5.6.1에서 변경: Metrics can now be exposed in OpenMetrics compatible format with ?format=openmetrics.

버전 2026.8에서 변경: OpenMetrics responses now include HELP and TYPE metadata and use the versioned OpenMetrics content type.

Response JSON Object:
  • units (int) – Number of units

  • units_translated (int) – Number of translated units

  • users (int) – Number of users

  • changes (int) – Number of changes

  • projects (int) – Number of projects

  • components (int) – Number of components

  • 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 Celery를 사용한 백그라운드 작업

  • name (string) – Configured server name

  • version (string) – Running Weblate version, included when VERSION_DISPLAY is show or soft

In OpenMetrics format, the version is exposed as weblate_info{version="..."} 1 when VERSION_DISPLAY is show or soft. All metrics are exposed as gauges.

Project metrics expose translation statistics for each visible component and language at GET /api/projects/(string:project)/metrics/. They include translated, total, fuzzy, failing-check, and approved string, word, and character counts; suggestions; comments; and translated and approved percentages.

분류

GET /api/categories/

Added in version 5.0.

Lists available categories. See GET /api/categories/(int:id)/ for field definitions.

POST /api/categories/

Added in version 5.0.

Creates a new category. See GET /api/categories/(int:id)/ for field definitions.

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

Added in version 5.0.

매개변수:
  • id (int) – Category ID

Response JSON Object:
PATCH /api/categories/(int: id)/

Added in version 5.0: Edit partial information about category.

param id:

Category ID

type id:

int

>json object configuration:

Optional category configuration

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

Added in version 5.0: Edit full information about category.

param id:

Category ID

type id:

int

>json object configuration:

Optional category configuration

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

Added in version 5.0: Delete category.

param id:

Category ID

type id:

int

GET /api/categories/(int: id)/statistics/

Added in version 5.5.

Returns statistics for a category.

매개변수:
  • id (int) – Category ID

더 보기

Returned attributes are described in 통계.

GET /api/categories/(int: id)/reports/

Lists accessible reports generated directly for a category.

POST /api/categories/(int: id)/reports/

Schedules a report using the category as its scope. The request and response match POST /api/reports/; scope fields must be omitted.

GET /api/categories/(int: id)/announcements/

Added in version 5.17.1: Returns announcements for a category.

param id:

Category ID

type id:

int

>json int id:

ID of the announcement

>json string message:

announcement text

>json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

>json date expiry:

hide after this date, ISO 8601 extended format date (optional)

>json bool notify:

send notification to subscribed users? (optional)

POST /api/categories/(int: id)/announcements/

Added in version 5.17.1: Creates an announcement for a category.

param id:

Category ID

type id:

int

<json string message:

announcement text

<json string severity:

color of the message, one of info (light blue), warning (yellow), danger (red), success (green)

<json date expiry:

hide after this date, ISO 8601 extended format date (optional)

<json bool notify:

send notification to subscribed users? (optional)

DELETE /api/categories/(int: id)/announcements/(int: announcement_id)/

Added in version 5.17.1: Deletes an announcement from a category.

param id:

Category ID

type id:

int

param announcement_id:

ID of the announcement to delete

type announcement_id:

integer

알림 후크

Notification hooks allow external applications to notify Weblate that the VCS repository has been updated. Weblate matches the delivery to components by repository URL; see Matching webhook targets.

The generic hook endpoints return diagnostics intended to help configure repository notifications. The match_status object contains:

repository_matches

Number of components whose repository URL matches the payload.

branch_matches

Number of repository matches whose configured branch matches the payload. For events without a branch, every repository match is counted as a branch match.

enabled_hook_matches

Number of branch matches whose project has hooks enabled.

A successful update response names the updated project/component slugs in message and returns their absolute API URLs in updated_components. These diagnostics include private projects and restricted components because matching does not apply user access control. Components managed through an authenticated integration are excluded from generic matching and diagnostics; currently this applies to the GitHub (via Weblate GitHub app) VCS backend. When an update event completes target matching but schedules no update, the response uses HTTP status code 202 and retains match_status so the repository, branch, and project hook settings can be diagnosed. Ping and ignored events return HTTP status code 201 without matching diagnostics. These responses can confirm that a supplied repository URL is registered, but do not grant access to the linked API objects or expose repository content, translations, or credentials. See Matching webhook targets for the security and compatibility implications.

프로젝트, 구성요소 및 번역의 저장소 엔드포인트를 사용하여 개별 저장소를 업데이트할 수 있습니다. 자세한 내용은 POST /api/projects/(string:project)/repository/ 를 참조하세요.

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

버전 2.6부터 폐지됨: Please use POST /api/components/(string:project)/(string:component)/repository/ instead which works properly with authentication for ACL limited projects.

Removed in version 5.14.

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

버전 2.6부터 폐지됨: Please use POST /api/projects/(string:project)/repository/ instead which works properly with authentication for ACL limited projects.

Removed in version 5.14.

POST /hooks/github/

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

참고

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.

더 보기

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.

더 보기

GitLab 알림

For instruction on setting up GitLab integration

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

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.

더 보기

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/

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

더 보기

Pagure 알림

For instruction on setting up Pagure integration

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/azure/

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

참고

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

더 보기

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/

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

더 보기

Gitea 알림

For instruction on setting up Gitea integration

https://docs.gitea.com/usage/repository/webhooks

Generic information about Gitea Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/forgejo/

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

더 보기

Forgejo 알림

For instruction on setting up Forgejo integration

https://forgejo.org/docs/latest/user/webhooks/

Generic information about Forgejo Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

POST /hooks/gitee/

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

더 보기

Gitee 알림

For instruction on setting up Gitee integration

https://help.gitee.com/webhook

Generic information about Gitee Webhooks

ENABLE_HOOKS

For enabling hooks for whole Weblate

RSS 피드

번역의 변경 사항은 RSS 피드로 내보내집니다.

The feeds contain only changes in projects and components the requesting user can access.

필터링된 RSS 피드는 변경사항 탐색기에서 사용할 수 있습니다. 이는 변경사항 페이지와 같은 필터를 허용합니다. 예: action, user, exclude_user, period.

GET /changes/rss/

Retrieves RSS feed with recent changes matching changes browsing filters.

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

Retrieves RSS feed with recent changes matching changes browsing filters in a translation.

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

Retrieves RSS feed with recent changes matching changes browsing filters in a component.

GET /changes/rss/(string: project)/-/(string: language)/

Retrieves RSS feed with recent changes matching changes browsing filters in a project language.

GET /changes/rss/-/-/(string: language)/

Retrieves RSS feed with recent changes matching changes browsing filters in a language.

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.

더 보기

위키백과의 RSS