{"openapi":"3.0.3","info":{"title":"Default projects","version":"1.0.0","description":"Describes the API for default projects.\\n\\n**Project Type Compatibility**: Many API endpoints have different compatibility with project types:\\n- **Software projects** (localization_files) - Support individual key management, no file deletion\\n- **Documents projects** (paged_documents) - Support file management, no individual key operations\\n- **Marketing projects** (content_integration, marketing, marketing_integrations) - Mixed support depending on specific type\\n\\nBranching is only supported for Software projects. See individual endpoint documentation for specific compatibility information."},"servers":[{"url":"https://api.lokalise.com/api2"}],"paths":{"/projects/{project_id}/comments":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","comments":[{"comment_id":44444,"key_id":12345,"comment":"Hello, world!","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600},{"comment_id":44445,"key_id":12346,"comment":"Bye, world!","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/Comments"}}}}}}}},"summary":"List project comments","operationId":"List project comments","description":"Retrieves a list of all comments in the project.\n\nRequires <code>read_comments</code> OAuth access scope.","tags":["Comments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":100,"schema":{"type":"number"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":1,"schema":{"type":"number"}}]}},"/projects/{project_id}/keys/{key_id}/comments":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","comments":[{"comment_id":44444,"key_id":12345,"comment":"Hello, world!","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600},{"comment_id":44445,"key_id":12345,"comment":"Bye, world!","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"comments":{"type":"array","items":{"$ref":"#/components/schemas/Comments"}}}}}}}},"summary":"List key comments","operationId":"List key comments","description":"Retrieves a list of all comments for a key.\n\nRequires <code>read_comments</code> OAuth access scope.","tags":["Comments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":100,"schema":{"type":"number"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"number"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","comments":[{"comment_id":44444,"key_id":12345,"comment":"This is a test.","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600},{"comment_id":44445,"key_id":12345,"comment":"Adding multiple comments.","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"comment":{"$ref":"#/components/schemas/Comments"}}}}}}},"summary":"Create comments","operationId":"Create comments","description":"Adds a set of comments to the key.\n\nRequires <code>write_comments</code> OAuth access scope.","tags":["Comments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"comments":[{"comment":"This is a test."},{"comment":"Adding multiple comments."}]},"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","required":["comment"],"properties":{"comment":{"type":"string","description":"The comment to add."}}},"description":"A set of comments to add"}}}}}}}},"/projects/{project_id}/keys/{key_id}/comments/{comment_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","comment":{"comment_id":44444,"key_id":12345,"comment":"This is a test.","added_by":420,"added_by_email":"commenter@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"comment":{"$ref":"#/components/schemas/Comments"}}}}}}},"summary":"Retrieve a comment","operationId":"Retrieve a comment","description":"Retrieves a [Comment](#object-comments) object.\n\nRequires <code>read_comments</code> OAuth access scope.","tags":["Comments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"comment_id","in":"path","description":" A unique identifier of the comment.","required":true,"schema":{"type":"number"}}]},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"comment_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a comment","operationId":"Delete a comment","description":"Deletes a comment from the project. Authenticated user can only delete own comments.\n\nRequires <code>write_comments</code> OAuth access scope.","tags":["Comments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"comment_id","in":"path","description":" A unique identifier of the comment.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/contributors":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributors":[{"user_id":420,"email":"johndoe@mycompany.com","fullname":"John Doe","created_at":"2018-01-01 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"is_admin":true,"is_reviewer":true,"languages":[{"lang_id":640,"lang_iso":"en","lang_name":"English","is_writable":1},{"lang_id":597,"lang_iso":"ru","lang_name":"Russian","is_writable":1}],"admin_rights":["keys","languages"]}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributors":{"type":"array","items":{"$ref":"#/components/schemas/Contributors"}}}}}}}},"summary":"List all contributors","operationId":"List all contributors","description":"Lists contributors of the project, including access levels to the project languages. Admins always have read/write access to all languages.\n\nRequires <code>read_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":100,"schema":{"type":"number"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":1,"schema":{"type":"number"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributor":{"user_id":421,"email":"translator@mycompany.com","fullname":"Mr. Translator","is_admin":false,"is_reviwer":true,"role_id":1,"languages":[{"lang_iso":"en","is_writable":false},{"lang_iso":"ru","is_writable":true}],"admin_rights":{}}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributor":{"$ref":"#/components/schemas/Contributors"}}}}}}},"summary":"Create contributors","operationId":"Create contributors","description":"Creates one or more contributors in the project. Requires *Manage contributors* admin right.\n\nIf `is_admin` flag is set to `true`, the user would automatically get access to all project languages, overriding supplied `languages` object. Attribute `fullname` will be ignored, if the user has already been registered in Lokalise.\n\nRequires <code>write_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"contributors":[{"email":"translator@mycompany.com","fullname":"Mr. Translator","is_admin":false,"is_reviewer":true,"languages":[{"lang_iso":"en","is_writable":false},{"lang_iso":"ru","is_writable":true}]}]},"schema":{"type":"object","properties":{"contributors":{"type":"array","items":{"type":"object","required":["email","languages"],"properties":{"email":{"type":"string","description":"E-mail."},"fullname":{"type":"string","description":"Full name (only valid for inviting users, who previously did not have an account in Lokalise)."},"is_admin":{"type":"boolean","description":"Whether the user has Admin access to the project. From the new permission release onwards is deprecated."},"is_reviewer":{"type":"boolean","description":"Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated."},"role_id":{"type":"number","description":"Permission template id to take permissions from, if this parameter is provided, admin_rights is ignored.","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}},"languages":{"type":"array","items":{"type":"object","required":["lang_iso"],"properties":{"lang_iso":{"type":"string","description":"Language code."},"is_writable":{"type":"boolean","description":"Whether the user has write access to the language."}}},"description":"List of languages, accessible to the user. Required if <code>is_admin</code> is set to <code>false</code>."},"admin_rights":{"type":"array","items":{"type":"string","enum":["activity","contributors","branches_create","branches_main_modify","branches_merge","custom_status_modify","download","glossary","glossary_edit","glossary_delete","keys","manage_languages","review","screenshots","settings","statistics","tasks","upload"]},"description":"Custom list of user permissions. Possible values are <code>activity</code>,<code>contributors</code>,<code>branches_create</code>,<code>branches_main_modify</code>,<code>branches_merge</code>,<code>custom_status_modify</code>,<code>download</code>,<code>glossary</code>,<code>glossary_edit</code>,<code>glossary_delete</code>,<code>keys</code>,<code>manage_languages</code>,<code>review</code>,<code>screenshots</code>,<code>settings</code>,<code>statistics</code>,<code>tasks</code>,<code>upload</code>. Omitted or empty parameter will set no rights for contributor."}}},"description":"A set of contributors to add"}}}}}}}},"/projects/{project_id}/contributors/import":{"post":{"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"project_uuid":"01936d92-78e0-7b3c-a245-1b4c8e5f6d2a","summary":{"total_requested":2,"imported":1,"skipped":1},"contributors":[{"id":"550e8400-e29b-41d4-a716-446655440001","success":true},{"id":"550e8400-e29b-41d4-a716-446655440002","success":false,"reason":"Already exists in target project"}]},"schema":{"type":"object","properties":{"project_uuid":{"type":"string","format":"uuid","description":"Target project UUID"},"summary":{"type":"object","properties":{"total_requested":{"type":"integer","description":"Total number of contributors requested to import"},"imported":{"type":"integer","description":"Number of successfully imported contributors"},"skipped":{"type":"integer","description":"Number of skipped contributors (already exist or failed)"}}},"contributors":{"type":"array","description":"Detailed results for each contributor","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Contributor UUID"},"success":{"type":"boolean","description":"Whether the import was successful"},"reason":{"type":"string","description":"Reason for failure (only present when success is false)"}}}}}}}}},"400":{"description":"Bad Request - Validation error or malformed request","content":{"application/json":{"examples":{"validation_error":{"summary":"Validation Error","value":{"error":{"code":400,"message":"Validation failed","violations":{"from_project_uuid":["Source project UUID is required"]}}}},"malformed_json":{"summary":"Malformed JSON","value":{"error":{"message":"Invalid JSON: Syntax error","code":400}}},"invalid_type":{"summary":"Invalid Field Type","value":{"error":{"code":400,"message":"Validation failed","violations":{"contributor_ids":["Contributor IDs must be an array"]}}}}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code (400 for validation errors)"},"message":{"type":"string","description":"Error message"},"violations":{"type":"object","description":"Field-specific validation errors (present for validation errors)","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"example":{"error":{"message":"No access to source project","code":403}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Error message"},"code":{"type":"integer","description":"HTTP status code (403)"}}}}}}}},"404":{"description":"Not Found - Source or target project not found","content":{"application/json":{"examples":{"target_project_not_found":{"summary":"Target Project Not Found","value":{"error":{"message":"Target project not found","code":404}}},"source_project_not_found":{"summary":"Source Project Not Found","value":{"error":{"message":"Source project not found","code":404}}}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Error message indicating which project was not found"},"code":{"type":"integer","description":"HTTP status code (404)"}}}}}}}}},"summary":"Import contributors","operationId":"Import contributors","description":"Imports contributors from one project to another, copying their roles, permissions, and language assignments. If `contributor_ids` is omitted or empty, all contributors from the source project will be imported. If specified, only the listed contributors will be imported. Requires *Manage contributors* admin right on target project and read access to source project.\n\nRequires <code>write_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier (UUID v7)","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"example":{"from_project_uuid":"01933e2e-4e5d-7b9c-8f1a-2b3c4d5e6f7a","contributor_ids":["01933e2f-1a2b-7c3d-9e4f-5a6b7c8d9e0f","01933e2f-2b3c-7d4e-af5b-6c7d8e9f0a1b"]},"schema":{"type":"object","required":["from_project_uuid"],"properties":{"from_project_uuid":{"type":"string","format":"uuid","description":"Source project UUID (UUID v7) to import contributors from","example":"01933e2e-4e5d-7b9c-8f1a-2b3c4d5e6f7a"},"contributor_ids":{"type":"array","description":"Optional array of contributor UUIDs (UUID v7) to import. If omitted or empty, all contributors from source project will be imported.","items":{"type":"string","format":"uuid"},"example":["01933e2f-1a2b-7c3d-9e4f-5a6b7c8d9e0f","01933e2f-2b3c-7d4e-af5b-6c7d8e9f0a1b"]}}}}}}},"delete":{"responses":{"202":{"description":"Accepted","headers":{},"content":{"application/json":{"example":{"jobId":"018f3e5c-1234-7890-abcd-0123456789ab"},"schema":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid","description":"A unique identifier (UUID v7) for the asynchronous deletion job"}}}}}},"409":{"description":"Conflict","headers":{},"content":{"application/json":{"example":{"error":{"message":"A previous bulk delete operation for this project recently completed or failed; please retry if needed","code":409}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"}}}}}}}}},"summary":"Delete all contributors","operationId":"Delete all contributors","description":"Initiates asynchronous deletion of all contributors from the project. Returns a job ID that can be used to track the deletion progress. Requires *Manage contributors* admin right.\n\nRequires <code>delete_contributors</code> OAuth access scope.\n\nNote: This endpoint returns HTTP 202 (Accepted) upon successful job creation. Use the returned job ID with the job status endpoint to track progress.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier (UUID v7)","required":true,"schema":{"type":"string","format":"uuid"}}]}},"/projects/{project_id}/contributors/jobs/{job_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"state":"completed","projectId":"01933e2e-4e5d-7b9c-8f1a-2b3c4d5e6f7a","createdAt":1234567890,"updatedAt":1234567900,"total":150,"processed":150,"deleted":148,"failed":2,"skipped":0,"errors":{"cannot_delete_team_owner":1,"database_error":1}},"schema":{"type":"object","properties":{"state":{"type":"string","enum":["queued","running","completed","failed"],"description":"Current state of the deletion job"},"projectId":{"type":"string","format":"uuid","description":"The project UUID (UUID v7)"},"createdAt":{"type":"integer","description":"Unix timestamp when the job was created"},"updatedAt":{"type":"integer","description":"Unix timestamp when the job was last updated"},"total":{"type":"integer","description":"Total number of contributors to delete"},"processed":{"type":"integer","description":"Number of contributors processed so far"},"deleted":{"type":"integer","description":"Number of contributors successfully deleted"},"failed":{"type":"integer","description":"Number of contributors that failed to delete"},"skipped":{"type":"integer","description":"Number of contributors skipped"},"errors":{"type":"object","description":"Map of error messages to their occurrence counts","additionalProperties":{"type":"integer"}}}}}}},"404":{"description":"Not Found","headers":{},"content":{"application/json":{"example":{"error":{"message":"Job not found","code":404}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"}}}}}}}}},"summary":"Get bulk deletion job status","operationId":"Get bulk deletion job status","description":"Retrieves the status of a bulk contributors deletion job. Use the job ID returned from the bulk delete endpoint.\n\nRequires <code>read_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier (UUID v7)","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"job_id","in":"path","description":"A unique job identifier (UUID v7)","required":true,"schema":{"type":"string","format":"uuid"}}]}},"/projects/{project_id}/contributors/{contributor_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributor":{"user_id":421,"email":"translator@mycompany.com","fullname":"Mr. Translator","is_admin":false,"is_reviwer":true,"languages":[{"lang_iso":"en","is_writable":false},{"lang_iso":"ru","is_writable":true}],"admin_rights":["keys","languages"]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributor":{"$ref":"#/components/schemas/Contributors"}}}}}},"400":{"description":"Bad Request","headers":{},"content":{"application/json":{"example":{"error":{"message":"Invalid type of `contributor_id` parameter","code":400}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"}}}}}}}}},"summary":"Retrieve a contributor","operationId":"Retrieve a contributor","description":"Retrieves a [Contributor](#object-contributors) object.\n\nRequires <code>read_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"contributor_id","in":"path","description":" A unique identifier of the contributor.","required":true,"schema":{"type":"integer"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributor":{"user_id":421,"email":"translator@mycompany.com","fullname":"Mr. Translator","is_admin":true,"is_reviwer":true,"role_id":1,"languages":[{"lang_iso":"en","is_writable":true},{"lang_iso":"ru","is_writable":true}],"admin_rights":["keys","languages"]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributor":{"$ref":"#/components/schemas/Contributors"}}}}}}},"summary":"Update a contributor","operationId":"Update a contributor","description":"Updates the properties of a contributor. Requires *Manage contributors* admin right.\n\nIf you want to give an existing contributor access to a new language, you must specify full `languages` array, including the previously added languages as well. You can pass role_id and permissions will be updated from permission template accordingly, in this case admin_rights param will be ignored\n\nRequires <code>write_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"contributor_id","in":"path","description":" A unique identifier of the contributor.","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"example":{"is_admin":true},"schema":{"type":"object","properties":{"is_admin":{"type":"boolean","description":"Whether the user has Admin access to the project. From the new permission release onwards is deprecated."},"is_reviewer":{"type":"boolean","description":"Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated."},"role_id":{"type":"number","description":"Permission template id to take permissions from, if this parameter is provided, admin_rights is ignored.","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}},"languages":{"type":"array","items":{"type":"object","properties":{"lang_iso":{"type":"string","description":"Language code."},"is_writable":{"type":"boolean","description":"Whether the user has write access to the language."}}},"description":"List of languages, accessible to the user."},"admin_rights":{"type":"array","items":{"type":"string","enum":["activity","contributors","create_branches","download","glossary","keys","languages","screenshots","settings","statistics","tasks","upload"]},"description":"Custom list of user permissions. Possible values are <code>activity</code>,<code>contributors</code>,<code>branches_create</code>,<code>branches_main_modify</code>,<code>branches_merge</code>,<code>custom_status_modify</code>,<code>download</code>,<code>glossary</code>,<code>glossary_edit</code>,<code>glossary_delete</code>,<code>keys</code>,<code>manage_languages</code>,<code>review</code>,<code>screenshots</code>,<code>settings</code>,<code>statistics</code>,<code>tasks</code>,<code>upload</code>. Empty parameter will set default no rights for contributor."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributor_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributor_deleted":{"type":"boolean"}}}}}},"400":{"description":"Bad Request","headers":{},"content":{"application/json":{"example":{"error":{"message":"Invalid type of `contributor_id` parameter","code":400}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"}}}}}}}},"403":{"description":"Forbidden","headers":{},"content":{"application/json":{"example":{"error":{"message":"cannot_delete_self","code":403}},"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"}}}}}}}}},"summary":"Delete a contributor","operationId":"Delete a contributor","description":"Deletes a user from the project. Requires *Manage contributors* admin right.\n\nRequires <code>delete_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"contributor_id","in":"path","description":" A unique identifier of the contributor.","required":true,"schema":{"type":"integer"}}]}},"/projects/{project_id}/contributors/me":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","contributor":{"user_id":421,"email":"translator@mycompany.com","fullname":"Mr. Translator","is_admin":false,"is_reviewer":true,"languages":[{"lang_iso":"en","is_writable":false},{"lang_iso":"ru","is_writable":true}],"admin_rights":["keys","languages"]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"contributor":{"$ref":"#/components/schemas/Contributors"}}}}}}},"summary":"Retrieve a contributor representing user sending a query","operationId":"Retrieve me as a contributor","description":"Retrieves a [Contributor](#object-contributors) object. Gets combined permissions from contributor and a group.\n\nRequires <code>read_contributors</code> OAuth access scope.","tags":["Contributors"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/custom_translation_statuses":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","custom_translation_statuses":[{"status_id":123,"title":"Default status","color":"#ffffff"}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"custom_translation_statuses":{"type":"array","items":{"$ref":"#/components/schemas/TranslationStatuses"}}}}}}}},"summary":"List all statuses","operationId":"List all statuses","description":"Lists all custom translation statuses in the project.\n\nRequires <code>read_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","custom_translation_status":{"status_id":124,"title":"Reviewed by doctors","color":"#ff9f1a"}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"custom_translation_status":{"$ref":"#/components/schemas/TranslationStatuses"}}}}}}},"summary":"Create a status","operationId":"Create a status","description":"Creates a custom translation status in the project.\n\nRequires <code>write_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"title":"Reviewed by doctors","color":"#ff9f1a"},"schema":{"type":"object","required":["title","color"],"properties":{"title":{"type":"string","description":"Status title."},"color":{"type":"string","description":"Hex color of the status."}}}}}}}},"/projects/{project_id}/custom_translation_statuses/{status_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","custom_translation_status":{"status_id":124,"title":"Reviewed by doctors","color":"#ff9f1a"}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"custom_translation_statuses":{"type":"array","items":{"$ref":"#/components/schemas/TranslationStatuses"}}}}}}}},"summary":"Retrieve a status","operationId":"Retrieve a status","description":"Retrieves a [Custom Translation Status](#object-translation-statuses) object.\n\nRequires <code>read_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"status_id","in":"path","description":"A unique custom translation status identifier.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","custom_translation_status":{"status_id":124,"title":"Reviewed by staff","color":"#ff9f1a"}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"custom_translation_statuses":{"type":"array","items":{"$ref":"#/components/schemas/TranslationStatuses"}}}}}}}},"summary":"Update a status","operationId":"Update a status","description":"Updates the custom translation status.\n\nRequires <code>write_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"status_id","in":"path","description":"A unique custom translation status identifier.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"title":"Reviewed by staff"},"schema":{"type":"object","properties":{"title":{"type":"string","description":"Status title."},"color":{"type":"string","description":"Hex color of the status."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"deleted":{"type":"boolean"}}}}}}},"summary":"Delete a status","operationId":"Delete a status","description":"Deletes aa custom translation status.\n\nRequires <code>write_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"status_id","in":"path","description":"A unique custom translation status identifier.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/custom_translation_statuses/colors":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"colors":["#61bd4f","#f2d600","#ff9f1a","#eb5a46","#c377e0","#0079bf","#00c2e0","#344563","#ff78cb"]},"schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}}}}}}},"summary":"Retrieve available colors","operationId":"Retrieve available colors","description":"Retrieves an array of available colors that can be assigned to custom translation statuses.\n\nRequires <code>read_custom_translation_statuses</code> OAuth access scope.","tags":["Custom Translation Statuses"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/files":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","files":[{"file_id":33,"filename":"%LANG_ISO%-index.json","key_count":441},{"file_id":24,"filename":"admin.json","key_count":32},{"file_id":-1,"filename":"__unassigned__","key_count":11}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/Files"}}}}}}}},"summary":"List all files","operationId":"List all files","description":"Lists project files and associated key count. If there are some keys in the project that do not have a file association, they will be returned with filename `__unassigned__`.\n\nRequires <code>read_files</code> OAuth access scope.","tags":["Files"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"filter_filename","in":"query","description":"Set filename filter for the list.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/projects/{project_id}/files/upload":{"post":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"process":{"$ref":"#/components/schemas/QueuedProcesses"}}}}},"description":"OK"},"202":{"description":"Accepted","headers":{"Location":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"767946315e9866d013c1d0.08299127","process":{"process_id":"2e0559e60e856555fbc15bdf78ab2b0ca3406e8f","type":"file-import","status":"queued","message":"","created_by":1234,"created_by_email":"example@example.com","created_at":"2020-04-20 13:43:43 (Etc/UTC)","created_at_timestamp":1587390223}}}}},"302":{"description":"Found","headers":{"Location":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"767946315e9866d013c1d0.08299127","process":{"process_id":"2e0559e60e856555fbc15bdf78ab2b0ca3406e8f","type":"file-import","status":"queued","message":"","created_by":1234,"created_by_email":"example@example.com","created_at":"2020-04-20 13:43:43 (Etc/UTC)","created_at_timestamp":1587390223}}}}}},"summary":"Upload a file","operationId":"Upload a file","description":"Queues a localization file for import and returns a <code>202</code> or <code>302</code> response along with a <a href=\"#object-queued-processes\">Queued process</a> object. <a href=\"https://docs.lokalise.com/developer-docs/uploading-files\" target=\"`_new`\">Learn more</a>. Requires *Upload files* admin right. <a href=\"https://docs.lokalise.com/en/collections/2909229-supported-file-formats\" target=_new>Supported file types</a>.\n\nPlease note that the <code>302</code> response code is not currently used, but in the future it will be returned if the same file is already in the upload queue.\n\nRequires <code>write_files</code> OAuth access scope.","tags":["Files"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"filename":"index.json","data":"D94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGL.....","lang_iso":"en","tags":["index","admin","v2.0"],"convert_placeholders":true},"schema":{"type":"object","required":["data","filename","lang_iso"],"properties":{"data":{"type":"string","description":"Base64 encoded file. Must be one of the supported file types."},"filename":{"type":"string","description":"Set the filename. You may optionally use a relative path in the filename (e.g admin/main.json), however keep in mind that path would become a unique part of the file."},"lang_iso":{"type":"string","description":"Language code of the translations in the file you are importing."},"convert_placeholders":{"type":"boolean","description":"Enable to automatically convert placeholders to the Lokalise universal placeholders."},"detect_icu_plurals":{"type":"boolean","description":"Enable to automatically detect and parse ICU formatted plurals in your translations."},"tags":{"type":"array","items":{"type":"string"},"description":"Tag keys with the specified tags. By default tags are applied to created and updated keys."},"tag_inserted_keys":{"type":"boolean","description":"Add specified tags to inserted keys."},"tag_updated_keys":{"type":"boolean","description":"Add specified tags to updated keys."},"tag_skipped_keys":{"type":"boolean","description":"Add specified tags to skipped keys."},"replace_modified":{"type":"boolean","description":"Enable to replace translations, that have been modified (in the file being uploaded)."},"slashn_to_linebreak":{"type":"boolean","description":"Enable to replace \\n with a line break."},"keys_to_values":{"type":"boolean","description":"Enable to automatically replace values with key names."},"distinguish_by_file":{"type":"boolean","description":"Enable to allow keys with similar names to coexist, in case they are assigned to different filenames."},"apply_tm":{"type":"boolean","description":"Enable to automatically apply 100% translation memory matches. This option will take priority over <code>use_automations</code> if set to <code>true</code>."},"use_automations":{"type":"boolean","description":"Whether to run automations for this upload."},"hidden_from_contributors":{"type":"boolean","description":"Enable to automatically set newly created keys as \"Hidden from contributors\"."},"cleanup_mode":{"type":"boolean","description":"Enable to delete all keys with all language translations that are not present in the uploaded file. You may want to make a snapshot of the project before importing new file, just in case."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Custom translation status IDs to be added to translations. By default statuses are applied to created and updated translations."},"custom_translation_status_inserted_keys":{"type":"boolean","description":"Add specified custom translation statuses to inserted keys."},"custom_translation_status_updated_keys":{"type":"boolean","description":"Add specified custom translation statuses to updated keys."},"custom_translation_status_skipped_keys":{"type":"boolean","description":"Add specified custom translation statuses to skipped keys."},"skip_detect_lang_iso":{"type":"boolean","description":"Skip automatic language detection by filename."},"format":{"type":"string","description":"File format (e.g. json, strings, xml). Must be file extension of any of the file formats we support."},"filter_task_id":{"type":"number","description":"Apply import results as a part of a task. Available only for offline_xliff file format."}}}}}}}},"/projects/{project_id}/files/async-download":{"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"process_id":"74738ff5-5367-5958-9aee-98fffdcd1876"},"schema":{"type":"object","properties":{"process_id":{"type":"string"}}}}}}},"summary":"Download files (Async)","operationId":"Download files (Async)","description":"Starts a project export process. The progress of the process can be tracked using the <a href=\"https://developers.lokalise.com/reference/list-all-processes\">list all processes</a> API endpoint. Once complete, the download URL can be accessed using the <a href=\"https://developers.lokalise.com/reference/retrieve-a-process\">Retrieve process</a> API endpoint. For general details about the Download endpoint, please refer to the <a href=\"https://developers.lokalise.com/reference/download-files\">Download files</a> API endpoint.","tags":["Files"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"format":"json","original_filenames":true},"schema":{"type":"object","required":["format"],"properties":{"format":{"type":"string","description":"File format (e.g. json, strings, xml). Must be file extension of any of the file formats we support. May also be <code>ios_sdk</code> or <code>android_sdk</code> for respective OTA SDK bundles."},"original_filenames":{"type":"boolean","description":"Enable to use original filenames/formats. If set to <code>false</code> all keys will be export to a single file per language."},"bundle_structure":{"type":"string","description":"Bundle structure, used when <code>original_filenames</code> set to <code>false</code>). Allowed placeholders are <code>%LANG_ISO%</code>, <code>%LANG_NAME%</code>, <code>%FORMAT%</code> and <code>%PROJECT_NAME%</code>)."},"directory_prefix":{"type":"string","description":"Directory prefix in the bundle, used when <code>original_filenames</code> set to <code>true</code>). Allowed placeholder is <code>%LANG_ISO%</code>."},"all_platforms":{"type":"boolean","description":"Enable to include all platform keys. If disabled, only the keys, associated with the platform of the <code>format</code> will be exported."},"filter_langs":{"type":"array","items":{"type":"string"},"description":"List of languages to export. Omit this parameter for all languages."},"filter_data":{"type":"array","items":{"type":"string","enum":["last_reviewed_only","nonhidden","reviewed","reviewed_only","translated","untranslated","verified"]},"description":"Narrow export data range. Allowed values are <code>translated</code> or <code>untranslated</code>, <code>reviewed</code> (or <code>reviewed_only</code>), <code>last_reviewed_only</code>, <code>verified</code> and <code>nonhidden</code>."},"filter_filenames":{"type":"array","items":{"type":"string"},"description":"Only keys attributed to selected files will be included. Leave empty for all."},"add_newline_eof":{"type":"boolean","description":"Enable to add new line at end of file (if supported by format)."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Only translations attributed to selected custom statuses will be included. Leave empty for all."},"include_tags":{"type":"array","items":{"type":"string"},"description":"Narrow export range to tags specified."},"exclude_tags":{"type":"array","items":{"type":"string"},"description":"Specify to exclude keys with these tags."},"export_sort":{"type":"string","description":"Export key sort mode. Allowed value are <code>first_added</code>, <code>last_added</code>, <code>last_updated</code>, <code>a_z</code>, <code>z_a</code>."},"export_empty_as":{"type":"string","description":"Select how you would like empty translations to be exported. Allowed values are <code>empty</code> to keep empty, <code>base</code> to replace with the base language value, <code>null</code> to replace with null (YAML export only), or <code>skip</code> to omit.","enum":["base","empty","null","skip"]},"export_null_as":{"type":"string","description":"(Ruby on Rails YAML export only) Select how you would like null (void) translations to be exported. Allowed values are <code>null</code> to keep null, <code>empty</code> to replace with empty string.","enum":["empty","null"]},"include_comments":{"type":"boolean","description":"Enable to include key comments and description in exported file (if supported by the format)."},"include_description":{"type":"boolean","description":"Enable to include key description in exported file (if supported by the format)."},"include_pids":{"type":"array","items":{"type":"string"},"description":"Other projects ID's, which keys should be included with this export."},"triggers":{"type":"array","items":{"type":"string","enum":["amazons3","azure","bitbucket","gcs","github","gitlab"]},"description":"Trigger integration exports (must be enabled in project settings). Allowed values are <code>amazons3</code>, <code>gcs</code>, <code>github</code>, <code>github-enterprise</code>, <code>gitlab</code>, <code>bitbucket</code>, <code>bitbucket-enterprise</code>, <code>azure</code>."},"filter_repositories":{"type":"array","items":{"type":"string"},"description":"Pull requests will be created only for listed repositories (<code>organization/repository</code> format). Leave empty array to process all configured integrations by platform only."},"replace_breaks":{"type":"boolean","description":"Enable to replace line breaks in exported translations with \\n."},"disable_references":{"type":"boolean","description":"Enable to skip automatic replace of key reference placeholders (e.g. [%key:hello_world%]) with their corresponding translations."},"plural_format":{"type":"string","description":"Override the default plural format for the file type. Allowed values are <code>json_string</code>, <code>icu</code>, <code>array</code>, <code>generic</code>, <code>symfony</code>, <code>i18next</code>, <code>i18next_v4</code>. See Plurals and placeholders for more information about plural support for specific file formats.","enum":["array","generic","i18next","i18next_v4","icu","json_string","symfony"]},"placeholder_format":{"type":"string","description":"Override the default placeholder format for the file type. Allowed values are <code>printf</code>, <code>ios</code>, <code>icu</code>, <code>net</code>, <code>symfony</code>, <code>i18n</code>, <code>raw</code>). See Plurals and placeholders for more information.","enum":["icu","ios","net","printf","symfony","i18n","raw"]},"webhook_url":{"type":"string","description":"Once the export is complete, sends a HTTP POST with the generated bundle URL to the specified URL."},"language_mapping":{"type":"array","items":{"type":"object","properties":{"original_language_iso":{"type":"string","description":"Original language code as defined in language settings."},"custom_language_iso":{"type":"string","description":"Language code to replace the original one with."}}},"description":"List of languages to override default iso codes for this export."},"icu_numeric":{"type":"boolean","description":"If enabled, plural forms <code>zero</code>, <code>one</code> and <code>two</code> will be replaced with <code>=0</code>, <code>=1</code> and <code>=2</code> respectively. Only works for ICU plural format."},"escape_percent":{"type":"boolean","description":"Only works for printf placeholder format. When enabled, all universal percent placeholders \"[%]\" will be always exported as \"%%\"."},"indentation":{"type":"string","description":"Provide to override default indentation in supported files. Allowed values are <code>default</code>, <code>1sp</code>, <code>2sp</code>, <code>3sp</code>, <code>4sp</code>, <code>5sp</code>, <code>6sp</code>, <code>7sp</code>, <code>8sp</code> and <code>tab</code>.","enum":["1sp","2sp","3sp","4sp","5sp","6sp","7sp","8sp","default","tab"]},"yaml_include_root":{"type":"boolean","description":"(YAML export only). Enable to include language ISO code as root key."},"json_unescaped_slashes":{"type":"boolean","description":"(JSON export only). Enable to leave forward slashes unescaped."},"java_properties_encoding":{"type":"string","description":"(Java Properties export only). Encoding for .properties files. Allowed values are <code>utf-8</code> and <code>latin-1</code>."},"java_properties_separator":{"type":"string","description":"(Java Properties export only). Separator for keys/values in .properties files. Allowed values are <code>=</code> and <code>:</code>."},"bundle_description":{"type":"string","description":"Description of the created bundle. Applies to <code>ios_sdk</code> or <code>android_sdk</code> OTA SDK bundles."},"filter_task_id":{"type":"number","description":"Only keys attributed to the task will be included. Available only for offline_xliff file format."},"compact":{"type":"boolean","description":"(ARB export only). Export the minimum required structure for use in production. Don't include metadata such as context, comments and screenshots."}}}}}}}},"/projects/{project_id}/files/download":{"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","bundle_url":"https://s3-eu-west-1.amazonaws.com/lokalise-assets/export/MyApp-locale.zip"},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"bundle_url":{"type":"string"}}}}}}},"summary":"Download files","operationId":"Download files","description":"Exports project files as a .zip bundle. Generated bundle will be uploaded to an Amazon S3 bucket, which will be stored there for 1 month available to download. As the bundle is generated and uploaded you would get a response with the URL to the file. Requires *Download files* admin right.\n\nThere are two ways to group keys by filenames when you are exporting - either all keys to a single file per language or use the previously assigned filenames. <a href=\"https://developers.lokalise.com/docs/webhooks-guide\" target=\"`_new`\">Learn more</a>.\n\nRequires <code>read_files</code> OAuth access scope.\n\n*Please note: Starting June 1st, 2025, this endpoint will be limited to projects with under 10,000 key-language pairs, for more details <a href=\"https://developers.lokalise.com/reference/file-download-limitations\" target=\"`_new`\">See our API limits page</a>*","tags":["Files"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"format":"json","original_filenames":true},"schema":{"type":"object","required":["format"],"properties":{"format":{"type":"string","description":"File format (e.g. json, strings, xml). Must be file extension of any of the file formats we support. May also be <code>ios_sdk</code> or <code>android_sdk</code> for respective OTA SDK bundles."},"original_filenames":{"type":"boolean","description":"Enable to use original filenames/formats. If set to <code>false</code> all keys will be export to a single file per language."},"bundle_structure":{"type":"string","description":"Bundle structure, used when <code>original_filenames</code> set to <code>false</code>). Allowed placeholders are <code>%LANG_ISO%</code>, <code>%LANG_NAME%</code>, <code>%FORMAT%</code> and <code>%PROJECT_NAME%</code>)."},"directory_prefix":{"type":"string","description":"Directory prefix in the bundle, used when <code>original_filenames</code> set to <code>true</code>). Allowed placeholder is <code>%LANG_ISO%</code>."},"all_platforms":{"type":"boolean","description":"Enable to include all platform keys. If disabled, only the keys, associated with the platform of the <code>format</code> will be exported."},"filter_langs":{"type":"array","items":{"type":"string"},"description":"List of languages to export. Omit this parameter for all languages."},"filter_data":{"type":"array","items":{"type":"string","enum":["last_reviewed_only","nonhidden","reviewed","reviewed_only","translated","untranslated","verified"]},"description":"Narrow export data range. Allowed values are <code>translated</code> or <code>untranslated</code>, <code>reviewed</code> (or <code>reviewed_only</code>), <code>last_reviewed_only</code>, <code>verified</code> and <code>nonhidden</code>."},"filter_filenames":{"type":"array","items":{"type":"string"},"description":"Only keys attributed to selected files will be included. Leave empty for all."},"add_newline_eof":{"type":"boolean","description":"Enable to add new line at end of file (if supported by format)."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Only translations attributed to selected custom statuses will be included. Leave empty for all."},"include_tags":{"type":"array","items":{"type":"string"},"description":"Narrow export range to tags specified."},"exclude_tags":{"type":"array","items":{"type":"string"},"description":"Specify to exclude keys with these tags."},"export_sort":{"type":"string","description":"Export key sort mode. Allowed value are <code>first_added</code>, <code>last_added</code>, <code>last_updated</code>, <code>a_z</code>, <code>z_a</code>."},"export_empty_as":{"type":"string","description":"Select how you would like empty translations to be exported. Allowed values are <code>empty</code> to keep empty, <code>base</code> to replace with the base language value, <code>null</code> to replace with null (YAML export only), or <code>skip</code> to omit.","enum":["base","empty","null","skip"]},"export_null_as":{"type":"string","description":"(Ruby on Rails YAML export only) Select how you would like null (void) translations to be exported. Allowed values are <code>null</code> to keep null, <code>empty</code> to replace with empty string.","enum":["empty","null"]},"include_comments":{"type":"boolean","description":"Enable to include key comments and description in exported file (if supported by the format)."},"include_description":{"type":"boolean","description":"Enable to include key description in exported file (if supported by the format)."},"include_pids":{"type":"array","items":{"type":"string"},"description":"Other projects ID's, which keys should be included with this export."},"triggers":{"type":"array","items":{"type":"string","enum":["amazons3","azure","bitbucket","gcs","github","gitlab"]},"description":"Trigger integration exports (must be enabled in project settings). Allowed values are <code>amazons3</code>, <code>gcs</code>, <code>github</code>, <code>github-enterprise</code>, <code>gitlab</code>, <code>bitbucket</code>, <code>bitbucket-enterprise</code>, <code>azure</code>."},"filter_repositories":{"type":"array","items":{"type":"string"},"description":"Pull requests will be created only for listed repositories (<code>organization/repository</code> format). Leave empty array to process all configured integrations by platform only."},"replace_breaks":{"type":"boolean","description":"Enable to replace line breaks in exported translations with \\n."},"disable_references":{"type":"boolean","description":"Enable to skip automatic replace of key reference placeholders (e.g. [%key:hello_world%]) with their corresponding translations."},"plural_format":{"type":"string","description":"Override the default plural format for the file type. Allowed values are <code>json_string</code>, <code>icu</code>, <code>array</code>, <code>generic</code>, <code>symfony</code>, <code>i18next</code>, <code>i18next_v4</code>. See Plurals and placeholders for more information about plural support for specific file formats.","enum":["array","generic","i18next","i18next_v4","icu","json_string","symfony"]},"placeholder_format":{"type":"string","description":"Override the default placeholder format for the file type. Allowed values are <code>printf</code>, <code>ios</code>, <code>icu</code>, <code>net</code>, <code>symfony</code>, <code>i18n</code>, <code>raw</code>). See Plurals and placeholders for more information.","enum":["icu","ios","net","printf","symfony","i18n","raw"]},"webhook_url":{"type":"string","description":"Once the export is complete, sends a HTTP POST with the generated bundle URL to the specified URL."},"language_mapping":{"type":"array","items":{"type":"object","properties":{"original_language_iso":{"type":"string","description":"Original language code as defined in language settings."},"custom_language_iso":{"type":"string","description":"Language code to replace the original one with."}}},"description":"List of languages to override default iso codes for this export."},"icu_numeric":{"type":"boolean","description":"If enabled, plural forms <code>zero</code>, <code>one</code> and <code>two</code> will be replaced with <code>=0</code>, <code>=1</code> and <code>=2</code> respectively. Only works for ICU plural format."},"escape_percent":{"type":"boolean","description":"Only works for printf placeholder format. When enabled, all universal percent placeholders \"[%]\" will be always exported as \"%%\"."},"indentation":{"type":"string","description":"Provide to override default indentation in supported files. Allowed values are <code>default</code>, <code>1sp</code>, <code>2sp</code>, <code>3sp</code>, <code>4sp</code>, <code>5sp</code>, <code>6sp</code>, <code>7sp</code>, <code>8sp</code> and <code>tab</code>.","enum":["1sp","2sp","3sp","4sp","5sp","6sp","7sp","8sp","default","tab"]},"yaml_include_root":{"type":"boolean","description":"(YAML export only). Enable to include language ISO code as root key."},"json_unescaped_slashes":{"type":"boolean","description":"(JSON export only). Enable to leave forward slashes unescaped."},"java_properties_encoding":{"type":"string","description":"(Java Properties export only). Encoding for .properties files. Allowed values are <code>utf-8</code> and <code>latin-1</code>."},"java_properties_separator":{"type":"string","description":"(Java Properties export only). Separator for keys/values in .properties files. Allowed values are <code>=</code> and <code>:</code>."},"bundle_description":{"type":"string","description":"Description of the created bundle. Applies to <code>ios_sdk</code> or <code>android_sdk</code> OTA SDK bundles."},"filter_task_id":{"type":"number","description":"Only keys attributed to the task will be included. Available only for offline_xliff file format."},"compact":{"type":"boolean","description":"(ARB export only). Export the minimum required structure for use in production. Don't include metadata such as context, comments and screenshots."}}}}}}}},"/projects/{project_id}/files/{file_id}":{"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","file_deleted":true}}}},"400":{"description":"Bad Request - Action not supported by this project type","content":{"application/json":{"example":{"error":{"message":"Action not supported by this type of project","code":400}}}}}},"summary":"Delete a file","operationId":"Delete a file","description":"Deletes a file and its associated keys from the project.\n\n**Project Type Compatibility:**\n- ✅ **Documents projects** (paged_documents)\n- ✅ **Marketing projects** (content_integration, marketing, marketing_integrations)\n- ❌ **Software projects** (localization_files) - *Not supported*\n\nRequires <code>write_files</code> OAuth access scope.","tags":["Files"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"file_id","in":"path","description":"A unique identifier of the file.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/tokens":{"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1c2VySWQiOjEsInByb2plY3RzIjpbeyJ0ZWFtSWQiOjEsInByb2plY3RJZCI6IjEifV0sImV4cCI6MTY2Njc4ODgyOH0.KjqBAqb3tVNHvwnr0nt6jXeF3gyWEhze0hh4GAQOpR8VDohysGps_QS6TdUMDofz_cpfPhaff0KmgKeNuXMbqBteeenSwCtQMtn4e3BWac5CdN10wfKtgiBwi--s2ljMctz9ROyBZpYBlkyTbxVq2MdCDZE6dmDIN2E-u3AcN9IeI1mZ31iqMeODT4pYMp-G_ZK1yzFOVq6RJKLy-L1N3UXqFTK3Ld10mFvwC8F2stO12M39morPk0MpanM4TOWvNDWOqnTTdC9hwe4-M4HXVuiXZGlJdtIgvGQ7FJIIYqVZf7u9YynJ9OfaTAT7l6c1XJXntVP5qrCrkw6tt1V74mGoueYz3oTR4vygsJEmezD1NGzUQ_c9IbxxDt0R-CqVIvPHHb3Mgimy7TvNwyWPwQP_oPnPKYtTF481q2iaqoBx_5paNksjaA4fYvGzUzyW4Vl6Zibf84E-ItrCved2h6N6fgMmUBLrVZS1GxX2K7-KgWExry79y6rmmrGQ53pEtBINy1FHgp7XMY_tSzjorTgMX3NdyfJupJp4hU8R7RybS1VLmg4dCqx7KGGQ-AgXkF3QLLXitYOFM7LGnZvaZrB-ReyIW8h64d0-cD3m3KbXCtie5ajGL2UEeXGSXJcuDtZlCbz5rNRcpQ4hsimmiTaL6P42IMSPQ1c0iboy0FE"},"schema":{"type":"object","properties":{"jwt":{"type":"string"}}}}}}},"summary":"Create a service JWT token","operationId":"create-service-jwt","description":"Create a JWT token for working with other services (primarily OTA/mobile SDKs).\n\n**Project Type Compatibility:**\n- ✅ **Software projects** (localization_files) - *Used with mobile SDKs and OTA updates*\n- ❌ **Documents projects** (paged_documents) - *Not supported*\n- ❌ **Marketing projects** (content_integration, marketing, marketing_integrations) - *Not supported*","tags":["JWT tokens"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"service":"ota"},"schema":{"type":"object","required":["service"],"properties":{"service":{"type":"string","enum":["ota"],"description":"Service to create the token for"}}}}}}}},"/projects/{project_id}/keys":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Keys"}}}}}}}},"summary":"List all keys","operationId":"List all keys","description":"Lists all keys in the project. This endpoint supports cursor pagination for better performance with large datasets. When using cursor pagination, the response will include a <code>nextCursor</code> value in the response headers when more data is available. Continue making requests with the <code>nextCursor</code> value until no <code>nextCursor</code> is returned, indicating all data has been retrieved.\n\n<b>IMPORTANT:</b> We do not provide a content delivery network for your language files. Do not make a request to this endpoint every time a user visits your website/app. Instead, fetch the results from this endpoint from time to time, store them locally, and serve your visitors with static files/your database content. Alternatively, you may use our File Download endpoint with an Amazon S3/Google CouldStorage integration to automatically upload your language files to a bucket of your choice.\n\nRequires <code>read_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"include_comments","in":"query","description":"Whether to include comments. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"include_screenshots","in":"query","description":"Whether to include URL to screenshots. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"include_translations","in":"query","description":"Whether to include translations. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_translation_lang_ids","in":"query","description":"One or more language ID to filter by (comma separated). Will include translations only for listed IDs.","required":false,"schema":{"type":"string"}},{"name":"filter_tags","in":"query","description":"One or more tags to filter by (comma separated).","required":false,"schema":{"type":"string"}},{"name":"filter_filenames","in":"query","description":"One or more filenames to filter by (comma separated).","required":false,"schema":{"type":"string"}},{"name":"filter_keys","in":"query","description":"One or more key name to filter by (comma separated). In case \"Per-platform keys\" is enabled in project settings, the filter will be applied to all platform names.","required":false,"schema":{"type":"string"}},{"name":"filter_key_ids","in":"query","description":"One or more key identifiers to filter by (comma separated).","required":false,"schema":{"type":"string"}},{"name":"filter_platforms","in":"query","description":"One or more platforms to filter by (comma separated). Possible values are <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code>.","required":false,"schema":{"type":"string"}},{"name":"filter_untranslated","in":"query","description":"Filter by untranslated keys. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_qa_issues","in":"query","description":"One or more QA issues to filter by (comma separated). Possible values are <code>spelling\\_and\\_grammar</code>, <code>placeholders</code>, <code>html</code>, <code>url\\_count</code>, <code>url</code>, <code>email\\_count</code>, <code>email</code>, <code>brackets</code>, <code>numbers</code>, <code>leading\\_whitespace</code>, <code>trailing\\_whitespace</code>, <code>double\\_space</code>, <code>special\\_placeholder</code> and <code>unbalanced\\_brackets</code>.","required":false,"schema":{"type":"string"}},{"name":"filter_archived","in":"query","description":"One archived filter. Possible values are <code>include</code>, <code>exclude</code> and <code>only</code>.","required":false,"example":"include","schema":{"type":"string","enum":["exclude","include","only"]}},{"name":"pagination","in":"query","description":"Type of pagination. Possible values are <code>offset</code> and <code>cursor</code>. The default value is <code>offset</code>. Cursor pagination is performance-optimized and does not count total records or calculate remaining pages. When using cursor pagination, continue making requests until no <code>nextCursor</code> is returned in the response headers.","required":false,"example":"offset","schema":{"type":"string","enum":["offset","cursor"]}},{"name":"limit","in":"query","description":"Number of items to include (max 500).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}},{"name":"cursor","in":"query","description":"Return results starting from this cursor. When using cursor pagination, this parameter should contain the <code>nextCursor</code> value from the previous response. Continue pagination until no <code>nextCursor</code> is returned in the response headers.","required":false,"schema":{"type":"string"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","keys":[{"key_id":331223,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"index.welcome","android":"index.welcome","web":"index.welcome","other":"index.welcome"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Index app welcome","platforms":["web"],"tags":[],"comments":{},"screenshots":{},"translations":[{"translation_id":444921,"key_id":331223,"language_iso":"en","translation":"Welcome","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":492},{"translation_id":444929,"key_id":331223,"language_iso":"ru","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":null}]},{"key_id":331224,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"index.apple","android":"index.apple","web":"index.apple","other":"index.apple"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Welcome apple","platforms":["web"],"is_plural":true,"tags":[],"comments":{},"screenshots":{},"translations":[{"translation_id":444941,"key_id":331224,"language_iso":"en","translation":"{\"one\":\"I have one apple\",\"other\":\"I have a lot of apples\"}","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":9147},{"translation_id":444949,"key_id":331224,"language_iso":"ru","translation":"{\"one\":\"\",\"few\":\"\",\"many\":\"\",\"other\":\"\"}","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":null}]}],"errors":[{"message":"This key name is already taken","code":400,"key":{"key_name":"index.hello"}}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Keys"}}}}}}}},"summary":"Create keys","operationId":"Create keys","description":"Creates one or more keys in the project. Requires *Manage keys* admin right. We recommend sending payload in chunks of up to 500 keys per request.\n\nRequires <code>write_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keys":[{"key_name":"index.welcome","description":"Index app welcome","platforms":["web"],"translations":[{"language_iso":"en","translation":"Welcome"}]},{"key_name":"index.apple","description":"Welcome apple","platforms":["web"],"is_plural":true,"translations":[{"language_iso":"en","translation":{"one":"I have one apple","other":"I have a lot of apples"}}]},{"key_name":"index.hello","platforms":["web"]}]},"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","required":["key_name","platforms"],"properties":{"key_name":{"type":"string","description":"Key identifier. For projects with enabled Per-platform key names, pass JSON encoded string with included <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code> string attributes."},"description":{"type":"string","description":"Description of the key."},"platforms":{"type":"array","items":{"type":"string","enum":["android","ios","other","web"]},"description":"List of platforms, enabled for this key. Possible values are <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code>."},"filenames":{"type":"object","properties":{"ios":{"type":"string","description":"\"iOS\" platform filename."},"android":{"type":"string","description":"\"Android\" platform filename."},"web":{"type":"string","description":"\"Web\" platform filename."},"other":{"type":"string","description":"\"Other\" platform filename."}},"description":"An object containing key filename attribute for each platform."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for this keys."},"comments":{"type":"array","items":{"type":"object","properties":{"comment":{"type":"string","description":"The comment message."}}},"description":"List of comments for this key."},"screenshots":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Title of the screenshot."},"description":{"type":"string","description":"Description of the screenshot."},"screenshot_tags":{"type":"array","items":{"type":"string"},"description":"List of screenshot tags."},"data":{"type":"string","description":"Base64 encoded screenshot (with leading image type 'data:image/jpeg;base64,')."}}},"description":"List of screenshots, attached to this key."},"translations":{"type":"array","items":{"type":"object","properties":{"language_iso":{"type":"string","description":"Unique code of the language of the translation."},"translation":{"type":"string","description":"The actual translation. Pass as an object, in case it includes plural forms and <code>is_plural</code> is <code>true</code>."},"is_reviewed":{"type":"boolean","description":"Whether the translation is marked as Reviewed."},"is_unverified":{"type":"boolean","description":"Whether the translation is marked as Unverified."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Custom translation status IDs to assign to translation."}}},"description":"Translations for all languages."},"is_plural":{"type":"boolean","description":"Whether this key is plural."},"plural_name":{"type":"string","description":"Optional custom plural name (used in some formats)."},"is_hidden":{"type":"boolean","description":"Whether this key is hidden from non-admins (translators)."},"is_archived":{"type":"boolean","description":"Whether this key is archived."},"context":{"type":"string","description":"Optional context of the key (used with some file formats)."},"char_limit":{"type":"number","description":"Maximum allowed number of characters in translations for this key."},"custom_attributes":{"type":"string","description":"JSON encoded string containing <a href=\"https://docs.lokalise.com/developer-docs/custom-key-attributes\">custom attributes</a> (if any)."}}},"description":"Keys to be added to the project"},"use_automations":{"type":"boolean","description":"Whether to run automations on the new key translations."}}}}}}},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","keys":[{"key_id":331223,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"index.welcome","android":"index.welcome","web":"index.welcome","other":"index.welcome"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Index app welcome","platforms":["web"],"tags":[],"comments":{},"screenshots":{},"translations":[{"translation_id":444921,"key_id":331223,"language_iso":"en","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":512},{"translation_id":444929,"key_id":331223,"language_iso":"ru","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":null}]},{"key_id":331224,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"index.welcome","android":"index.welcome","web":"index.welcome","other":"index.welcome"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Index app welcome","platforms":["web"],"tags":[],"comments":{},"screenshots":{},"translations":[{"translation_id":444921,"key_id":331223,"language_iso":"en","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":906},{"translation_id":444929,"key_id":331223,"language_iso":"ru","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":null}]}],"errors":{}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"key":{"$ref":"#/components/schemas/Keys"}}}}}}},"summary":"Multi-update","operationId":"Bulk update","description":"Updates one or more keys in the project. Requires *Manage keys* admin right.\n\nRequires <code>write_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keys":[{"key_id":331223,"key_name":"index.welcome","description":"Index app welcome","platforms":["web"]},{"key_id":331224,"key_name":"index.hello","description":"Index greetings","platforms":["web"]}]},"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","required":["key_id"],"properties":{"key_id":{"type":"number","description":"A unique identifier of the key."},"key_name":{"type":"string","description":"Key identifier. For projects with enabled Per-platform key names, pass JSON encoded string with included <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code> string attributes."},"description":{"type":"string","description":"Description of the key."},"platforms":{"type":"array","items":{"type":"string","enum":["android","ios","other","web"]},"description":"List of platforms, enabled for this key. Possible values are <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code>."},"filenames":{"type":"object","properties":{"ios":{"type":"string","description":"\"iOS\" platform filename."},"android":{"type":"string","description":"\"Android\" platform filename."},"web":{"type":"string","description":"\"Web\" platform filename."},"other":{"type":"string","description":"\"Other\" platform filename."}},"description":"An object containing key filename attribute for each platform."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for this keys."},"merge_tags":{"type":"boolean","description":"Enable to merge specified tags with the current tags attached to the key."},"comments":{"type":"array","items":{"type":"object","properties":{"comment":{"type":"string","description":"The comment message."}}},"description":"List of comments for this key."},"screenshots":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Title of the screenshot."},"description":{"type":"string","description":"Description of the screenshot."},"screenshot_tags":{"type":"array","items":{"type":"string"},"description":"List of screenshot tags."},"data":{"type":"string","description":"Base64 encoded screenshot (with leading image type 'data:image/jpeg;base64,')."}}},"description":"List of screenshots, attached to this key."},"translations":{"type":"array","items":{"type":"object","properties":{"language_iso":{"type":"string","description":"Unique code of the language of the translation."},"translation":{"oneOf":[{"type":"string","description":"A single string value","example":"single-value"},{"type":"object","description":"A hashmap/dictionary with string keys and string values","additionalProperties":{"type":"string"},"example":{"key1":"value1","key2":"value2","key3":"value3"}}],"description":"The actual translation. Pass as an object, in case it includes plural forms and <code>is_plural</code> is <code>true</code>."},"is_reviewed":{"type":"boolean","description":"Whether the translation is marked as Reviewed."},"is_unverified":{"type":"boolean","description":"Whether the translation is marked as Unverified."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Custom translation status IDs to assign to translation (existing statuses will be replaced)."},"merge_custom_translation_statuses":{"type":"boolean","description":"If you do not want statuses to be replaced but instead to be merged with provided then set this to true."}}},"description":"Translations for all languages."},"is_plural":{"type":"boolean","description":"Whether this key is plural."},"plural_name":{"type":"string","description":"Optional custom plural name (used in some formats)."},"is_hidden":{"type":"boolean","description":"Whether this key is hidden from non-admins (translators)."},"is_archived":{"type":"boolean","description":"Whether this key is archived."},"context":{"type":"string","description":"Optional context of the key (used with some file formats)."},"char_limit":{"type":"number","description":"Maximum allowed number of characters in translations for this key."},"custom_attributes":{"type":"string","description":"JSON encoded string containing <a href=\"https://docs.lokalise.com/developer-docs/custom-key-attributes\">custom attributes</a> (if any)."}}},"description":"Keys to update"},"use_automations":{"type":"boolean","description":"Whether to run automations on the updated key translations."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","keys_removed":true,"keys_locked":0},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"keys_removed":{"type":"boolean"},"keys_locked":{"type":"integer"}}}}}}},"summary":"Delete multiple keys","operationId":"Delete multiple keys","description":"Deletes multiple keys from the project. Requires *Manage keys* admin right.\n\nRequires <code>write_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"keys":[12345,12346]},"schema":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","items":{"type":"string"},"description":"List of key ids."}}}}}}}},"/projects/{project_id}/keys/{key_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","key":{"key_id":222222,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"index_welcome","android":"indexWelcome","web":"index.welcome","other":"welcome-index"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Index page welcome","platforms":["web","other"],"tags":["main","index"],"comments":[{"comment_id":233112,"comment":"Is there an exclamation sign?","added_by":420,"added_by_email":"user@mycompany.com","added_at":"2018-12-31 12:00:00 (Etc/UTC)","added_at_timestamp":1546257600}],"screenshots":[{"screenshot_id":11233,"title":"Welcome page","description":"","screenshot_tags":["index"],"url":"https://s3-eu-west-1.amazonaws.com/files/screenshots/welcome.jpg","created_at":"2019-02-01 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600}],"translations":[{"translation_id":444212,"key_id":222222,"language_iso":"en","translation":"Welcome to MyApp!","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":true,"reviewed_by":1357,"words":3,"custom_translation_statuses":{},"task_id":95},{"translation_id":444147,"key_id":222222,"language_iso":"ru","translation":"Добро пожаловать!","modified_by":422,"modified_by_email":"translator@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":2,"custom_translation_statuses":{},"task_id":null}]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"key":{"$ref":"#/components/schemas/Keys"}}}}}}},"summary":"Retrieve a key","operationId":"Retrieve a key","description":"Retrieves a [Key](#object-keys) object.\n\nRequires <code>read_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","key":{"key_id":331223,"created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"key_name":{"ios":"new.index.welcome","android":"index.welcome","web":"index.welcome","other":"index.welcome"},"filenames":{"ios":"","android":"","web":"","other":""},"description":"Index app welcome","platforms":["web","other"],"tags":[],"comments":{},"screenshots":{},"translations":[{"translation_id":444921,"key_id":331223,"language_iso":"en","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":121},{"translation_id":444929,"key_id":331223,"language_iso":"ru","translation":"","modified_by":420,"modified_by_email":"user@mycompany.com","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"is_reviewed":false,"reviewed_by":0,"words":0,"custom_translation_statuses":{},"task_id":null}]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"key":{"$ref":"#/components/schemas/Keys"}}}}}}},"summary":"Update a key","operationId":"Update a key","description":"Updates the properties of a key and it's associated objects. Requires *Manage keys* admin right.\n\nRequires <code>write_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"platforms":["web","other"],"description":"Index app welcome"},"schema":{"type":"object","properties":{"key_name":{"type":"string","description":"Key identifier. For projects with enabled Per-platform key names, pass JSON encoded string with included <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code> string attributes."},"description":{"type":"string","description":"Description of the key."},"platforms":{"type":"array","items":{"type":"string","enum":["android","ios","other","web"]},"description":"List of platforms, enabled for this key. Possible values are <code>ios</code>, <code>android</code>, <code>web</code> and <code>other</code>."},"filenames":{"type":"object","properties":{"ios":{"type":"string","description":"\"iOS\" platform filename."},"android":{"type":"string","description":"\"Android\" platform filename."},"web":{"type":"string","description":"\"Web\" platform filename."},"other":{"type":"string","description":"\"Other\" platform filename."}},"description":"An object containing key filename attribute for each platform."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for this keys."},"merge_tags":{"type":"boolean","description":"Enable to merge specified tags with the current tags attached to the key."},"is_plural":{"type":"boolean","description":"Whether this key is plural."},"plural_name":{"type":"string","description":"Optional custom plural name (used in some formats)."},"is_hidden":{"type":"boolean","description":"Whether this key is hidden from non-admins (translators)."},"is_archived":{"type":"boolean","description":"Whether this key is archived."},"context":{"type":"string","description":"Optional context of the key (used with some file formats)."},"char_limit":{"type":"number","description":"Maximum allowed number of characters in translations for this key."},"custom_attributes":{"type":"string","description":"JSON encoded string containing <a href=\"https://docs.lokalise.com/developer-docs/custom-key-attributes\">custom attributes</a> (if any)."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","key_removed":false,"keys_locked":1},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"key_removed":{"type":"boolean"},"keys_locked":{"type":"integer"}}}}}},"400":{"description":"Bad Request - Action not supported by this project type","content":{"application/json":{"example":{"error":{"message":"Action not supported by this type of project","code":400}}}}}},"summary":"Delete a key","operationId":"Delete a key","description":"Deletes a key from the project. Requires *Manage keys* admin right.\n\n**Project Type Compatibility:**\n- ✅ **Software projects** (localization_files)\n- ✅ **Marketing projects** (content_integration, marketing, marketing_integrations)\n- ❌ **Documents projects** (paged_documents) - *Individual key deletion not supported. Keys are managed through file operations.*\n\nRequires <code>delete_keys</code> OAuth access scope.","tags":["Keys"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/glossary-terms":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GlossaryTerms"}},"meta":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"},"cursor":{"type":"integer"},"hasMore":{"type":"boolean"},"nextCursor":{"type":"integer"}}}}}}}}},"summary":"List glossary terms","operationId":"List glossary terms","description":"Retrieves a list of glossary terms. This endpoint supports cursor pagination for better performance with large datasets. When using cursor pagination, the response will include a <code>nextCursor</code> value in the metadata when more data is available. Continue making requests with the <code>nextCursor</code> value until no <code>nextCursor</code> is returned, indicating all data has been retrieved.\n\nRequires <code>read_glossary</code> OAuth access scope.","tags":["Glossary"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 500).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"cursor","in":"query","description":"Return results starting from this cursor. When using cursor pagination, this parameter should contain the <code>nextCursor</code> value from the previous response. Continue pagination until no <code>nextCursor</code> is returned in the response headers.","required":false,"example":"1","schema":{"type":"integer"}}]},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deleted":{"type":"object","properties":{"count":{"type":"integer"},"ids":{"type":"array","items":{"type":"integer"}}}},"failed":{"type":"object","properties":{"count":{"type":"integer"},"ids":{"type":"array","items":{"type":"integer"}},"message":{"type":"string"}}}}}}}}}}},"summary":"Delete glossary terms","operationId":"Delete glossary terms","description":"Deletes all glossary terms from the project. Requires *Manage glossary* admin right.\n\nRequires <code>write_glossary</code> OAuth access scope.","tags":["Glossary"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"terms":[1234,5678]},"schema":{"type":"object","required":["terms"],"properties":{"terms":{"type":"array","items":{"type":"integer"},"description":"List of glossary term ids."}}}}}}},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GlossaryTerms"}},"meta":{"type":"object","properties":{"count":{"type":"integer"},"updated":{"type":"integer"},"limit":{"type":"integer"}}},"errors":{"type":"object"}}}}}}},"summary":"Update glossary terms","operationId":"Update glossary terms","description":"Updates one or more glossary terms in the project. Requires *Manage glossary* admin right.\n\nRequires <code>write_glossary</code> OAuth access scope.","tags":["Glossary"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["terms"],"properties":{"terms":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"integer"},"term":{"type":"string"},"description":{"type":"string"},"caseSensitive":{"type":"boolean"},"translatable":{"type":"boolean"},"forbidden":{"type":"boolean"},"translations":{"type":"array","items":{"type":"object","properties":{"langId":{"type":"integer"},"translation":{"type":"string"},"description":{"type":"string"}}}},"tags":{"type":"array","items":{"type":"string"}}}}}}}}}}},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GlossaryTerms"}},"meta":{"type":"object","properties":{"count":{"type":"integer"},"created":{"type":"integer"},"limit":{"type":"integer"}}},"errors":{"type":"object"}}}}}}},"summary":"Create glossary terms","operationId":"Create glossary terms","description":"Creates one or more glossary terms in the project. Requires *Manage glossary* admin right.\n\nRequires <code>write_glossary</code> OAuth access scope.","tags":["Glossary"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["terms"],"properties":{"terms":{"type":"array","items":{"type":"object","required":["term","description","caseSensitive","translatable","forbidden"],"properties":{"term":{"type":"string"},"description":{"type":"string"},"caseSensitive":{"type":"boolean"},"translatable":{"type":"boolean"},"forbidden":{"type":"boolean"},"translations":{"type":"array","items":{"type":"object","properties":{"langId":{"type":"integer"},"translation":{"type":"string"},"description":{"type":"string"}}}},"tags":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"/projects/{project_id}/glossary-terms/{term_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GlossaryTerms","example":{"id":1,"term":"Term","description":"A description of the term","caseSensitive":false,"translatable":true,"forbidden":false,"translations":[{"langId":640,"langName":"English","langIso":"en","translation":"Term","description":""},{"langId":643,"langName":"French","langIso":"fr","translation":"Terme","description":""}],"tags":["TAG1"],"createdAt":"2018-12-31 12:00:00 (Etc/UTC)","updatedAt":null}}}}}}}},"summary":"Retrieve a glossary term","operationId":"Retrieve a glossary term","description":"Retrieves a [Glossary Term](#object-glossary-terms) object.\n\nRequires <code>read_glossary</code> OAuth access scope.","tags":["Glossary"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"term_id","in":"path","description":"A unique glossary term identifier","required":true,"schema":{"type":"integer"}}]}},"/system/languages":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"languages":{"type":"array","items":{"$ref":"#/components/schemas/Languages"}}}}}}}},"summary":"List system languages","operationId":"List system languages","description":"Retrieves a list of system languages.\n\nRequires <code>read_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/projects/{project_id}/languages":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"languages":{"type":"array","items":{"$ref":"#/components/schemas/Languages"}}}}}}}},"summary":"List project languages","operationId":"List project languages","description":"Retrieves a list of project languages.\n\nRequires <code>read_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","languages":[{"lang_id":640,"lang_iso":"en","lang_name":"English","is_rtl":false,"plural_forms":["one","other"]},{"lang_id":597,"lang_iso":"ru","lang_name":"Russian","is_rtl":false,"plural_forms":["one","few","many","other"]}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"languages":{"type":"array","items":{"$ref":"#/components/schemas/Languages"}}}}}}}},"summary":"Create languages","operationId":"Create languages","description":"Creates one or more languages in the project. Requires *Manage languages* admin right.\n\nThe `language_iso` is the identifer of one of the system languages. You are only required to include the `language_iso` attribute, however you may override the default language code, language name and plural forms as well.\n\nRequires <code>write_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"languages":[{"lang_iso":"en"},{"lang_iso":"ru"}]},"schema":{"type":"object","properties":{"languages":{"type":"array","items":{"type":"object","required":["lang_iso"],"properties":{"lang_iso":{"type":"string","description":"A unique language code in the system."},"custom_iso":{"type":"string","description":"Override language/locale code."},"custom_name":{"type":"string","description":"Override language name."},"custom_plural_forms":{"type":"array","items":{"type":"string"},"description":"Override list of supported plural forms for this language."}}},"description":"A set of languages to add"}}}}}}}},"/projects/{project_id}/languages/{lang_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","language":{"lang_id":640,"lang_iso":"en","lang_name":"English","is_rtl":false,"plural_forms":["one","other"]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"language":{"$ref":"#/components/schemas/Languages"}}}}}}},"summary":"Retrieve a language","operationId":"Retrieve a language","description":"Retrieves a [Language](#object-languages) object.\n\nRequires <code>read_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"lang_id","in":"path","description":"A unique language identifier in the system.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","language":{"lang_id":640,"lang_iso":"en-US","lang_name":"English","is_rtl":false,"plural_forms":["one","zero","few","other"]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"language":{"$ref":"#/components/schemas/Languages"}}}}}}},"summary":"Update a language","operationId":"Update a language","description":"Updates the properties of a language. Requires *Manage languages* admin right.\n\nRequires <code>write_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"lang_id","in":"path","description":"A unique language identifier in the system.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"lang_iso":"en-US","plural_forms":["one","zero","few","other"]},"schema":{"type":"object","properties":{"lang_iso":{"type":"string","description":"Language/locale code."},"lang_name":{"type":"string","description":"Language name."},"plural_forms":{"type":"array","items":{"type":"string"},"description":"List of supported plural forms."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"language_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a language","operationId":"Delete a language","description":"Deletes a language from the project. Requires *Manage languages* admin right.\n\nRequires <code>write_languages</code> OAuth access scope.","tags":["Languages"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"lang_id","in":"path","description":"A unique language identifier in the system.","required":true,"schema":{"type":"number"}}]}},"/teams/{team_id}/orders":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"orders":[{"order_id":"20181231AAAA","project_id":"20008339586cded200e0d8.29879849","payment_method":"credit_card","card_id":12345,"status":"completed","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"jonn@company.com","source_language_iso":"en_US","target_language_isos":["ru","fr","it"],"keys":[12213,12214,12215,21216],"source_words":{"ru":256,"fr":222,"it":256},"provider_slug":"gengo","translation_style":"friendly","translation_tier":1,"translation_tier_name":"Native speakers","briefing":"Please translate our app strings","is_saved_to_translation_memory":true,"total":177.9}]},"schema":{"type":"object","properties":{"orders":{"type":"array","items":{"$ref":"#/components/schemas/Orders"}}}}}}}},"summary":"List all orders","operationId":"List all orders","description":"Lists all translation orders in the team.\n\nRequires <code>read_team_orders</code> OAuth access scope.","tags":["Orders"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"order_id":"20181231AAAA","project_id":"20008339586cded200e0d8.29879849","payment_method":"credit_card","card_id":12345,"status":"in progress","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"jonn@company.com","source_language_iso":"en_US","target_language_isos":["ru","fr","it"],"keys":[12213,12214,12215,21216],"source_words":{"ru":256,"fr":222,"it":256},"provider_slug":"gengo","translation_style":"friendly","translation_tier":1,"translation_tier_name":"Native speakers","briefing":"Terms of use of our app.","total":177.9,"dry_run":false},"schema":{"$ref":"#/components/schemas/Orders"}}}}},"summary":"Create an order","operationId":"Create an order","description":"Creates a translation order. You must have admin privileges in the project you are placing an order in.\n\nRequires <code>write_team_orders</code> OAuth access scope.","tags":["Orders"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","branch":"develop","card_id":12345,"briefing":"Terms of use of our app.","source_language_iso":"en_US","target_language_isos":["ru","fr","it"],"keys":[12213,12214,12215,21216],"provider_slug":"gengo","translation_tier":1},"schema":{"type":"object","required":["project_id","briefing","source_language_iso","target_language_isos","keys","provider_slug","translation_tier"],"properties":{"project_id":{"type":"string","description":"Project identifier."},"branch":{"type":"string","description":"Branch name."},"payment_method":{"type":"string","description":"Payment method. Possible values are <code>credit_card</code> (default) or <code>team_credit</code>.","enum":["credit_card","team_credit"]},"card_id":{"type":"number","description":"Identifier of the card used for payment. Required if <code>payment_method</code> = <code>credit_card</code>."},"briefing":{"type":"string","description":"Order briefing."},"source_language_iso":{"type":"string","description":"Source language code of the order."},"target_language_isos":{"type":"array","items":{"type":"string"},"description":"List of target languages."},"keys":{"type":"array","items":{"type":"string"},"description":"List of keys identifiers, included in the order."},"provider_slug":{"type":"string","description":"Translation provider slug."},"translation_tier":{"type":"number","description":"Tier of the translation. Tiers depend on provider."},"is_saved_to_translation_memory":{"type":"boolean","description":"Default true, can be set only with <code>google</code> and <code>deepl</code> providers."},"dry_run":{"type":"boolean","description":"Return the response without actually placing an order. Useful for price estimation. The card will not be charged. Defaults to <code>false</code> (live mode)."},"translation_style":{"type":"string","description":"Only for <code>gengo</code> provider. Available values are <code>formal</code>, <code>informal</code>, <code>business</code>, <code>friendly</code>. Defaults to <code>friendly</code>."}}}}}}}},"/teams/{team_id}/roles":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"roles":[{"id":1,"role":"Manager","permissions":["activity","branches_main_modify","branches_create","branches_merge","statistics","tasks","contributors","settings","manage_languages","download","upload","glossary_delete","glossary_edit","manage_keys","screenshots","custom_status_modify"],"description":"Manage project settings, contributors and tasks","tag":"Full access","tagColor":"green","doesEnableAllReadOnlyLanguages":true}]},"schema":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/PermissionTemplate"}}}}}}}},"summary":"List all permission templates for particular team","operationId":"List all permission templates","description":"List all permission templates for particular team to assign to contributor/group","tags":["Permission Templates"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}]}},"/teams/{team_id}/orders/{order_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"order_id":"20181231AAAA","project_id":"20008339586cded200e0d8.29879849","payment_method":"credit_card","card_id":12345,"status":"in progress","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"jonn@company.com","source_language_iso":"en_US","target_language_isos":["ru","fr","it"],"keys":[12213,12214,12215,21216],"source_words":{"ru":256,"fr":222,"it":256},"provider_slug":"gengo","translation_style":"friendly","translation_tier":1,"translation_tier_name":"Native speakers","briefing":"Terms of use of our app.","is_saved_to_translation_memory":true,"total":177.9},"schema":{"$ref":"#/components/schemas/Orders"}}}}},"summary":"Retrieve an order","operationId":"Retrieve an order","description":"Retrieves an [Order](#object-orders) object.\n\nRequires <code>read_team_orders</code> OAuth access scope.","tags":["Orders"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"order_id","in":"path","description":"A unique order identifier","required":true,"schema":{"type":"string"}}]}},"/payment_cards":{"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"card_id":1234,"last4":4242,"brand":"Visa","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600},"schema":{"$ref":"#/components/schemas/PaymentCards"}}}}},"summary":"Create a card","operationId":"Create a card","description":"Adds new payment card to user cards.\n\nRequires <code>write_payment_cards</code> OAuth access scope.","tags":["Payment Cards"],"parameters":[],"requestBody":{"content":{"application/json":{"example":{"number":"4242424242424242","cvc":"123","exp_month":5,"exp_year":2021},"schema":{"type":"object","required":["number","cvc","exp_month","exp_year"],"properties":{"number":{"type":"string","description":"Card number."},"cvc":{"type":"string","description":"3-digit card CVC code."},"exp_month":{"type":"number","description":"Card expiration month (1-12)."},"exp_year":{"type":"number","description":"Card expiration year."}}}}}}},"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"integer"},"payment_cards":{"type":"array","items":{"$ref":"#/components/schemas/PaymentCards"}}}}}}}},"summary":"List all cards","operationId":"List all cards","description":"Lists all user payment cards.\n\nRequires <code>read_payment_cards</code> OAuth access scope.","tags":["Payment Cards"],"parameters":[{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/payment_cards/{card_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"user_id":420,"payment_card":{"card_id":22193,"last4":"1234","brand":"Visa","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600}},"schema":{"type":"object","properties":{"user_id":{"type":"integer"},"payment_cards":{"$ref":"#/components/schemas/PaymentCards"}}}}}}},"summary":"Retrieve a card","operationId":"Retrieve a card","description":"Retrieves a [Payment card](#object-cards) object.\n\nRequires <code>read_payment_cards</code> OAuth access scope.","tags":["Payment Cards"],"parameters":[{"name":"card_id","in":"path","description":"A unique identifier of the card.","required":true,"schema":{"type":"number"}}]},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"card_id":22193,"card_deleted":true},"schema":{"type":"object","properties":{"card_id":{"type":"integer"},"card_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a card","operationId":"Delete a card","description":"Deletes a payment card from user cards.\n\nRequires <code>write_payment_cards</code> OAuth access scope.","tags":["Payment Cards"],"parameters":[{"name":"card_id","in":"path","description":"A unique identifier of the card.","required":true,"schema":{"type":"number"}}]}},"/projects":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"$ref":"#/components/schemas/Projects"}}}}}}}},"summary":"List all projects","operationId":"List all projects","description":"Retrieves a list of projects available to the user, authorized with a token.\n\nRequires <code>read_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[{"name":"filter_team_id","in":"query","description":"Limit results to team ID.","required":false,"schema":{"type":"number"}},{"name":"filter_names","in":"query","description":"One or more project names to filter by (comma separated).","required":false,"schema":{"type":"string"}},{"name":"include_statistics","in":"query","description":"Whether to include project statistics. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"1","schema":{"type":"number","enum":["0","1"]}},{"name":"include_settings","in":"query","description":"Whether to include project settings. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"1","schema":{"type":"number","enum":["0","1"]}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","project_type":"localization_files","name":"TheApp Project","description":"iOS + Android strings of TheApp. https://theapp.com","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com","team_id":12345,"base_language_id":640,"base_language_iso":"en-us","settings":{"per_platform_key_names":false,"reviewing":false,"auto_toggle_unverified":true,"offline_translation":false,"key_editing":true,"inline_machine_translations":true,"custom_translation_statuses":true,"custom_translation_statuses_allow_multiple":false,"segmentation":false,"contributor_preview_download_enabled":false},"statistics":{"progress_total":0,"keys_total":0,"team":1,"base_words":0,"qa_issues_total":0,"qa_issues":{"not_reviewed":0,"unverified":0,"spelling_grammar":0,"inconsistent_placeholders":0,"inconsistent_html":0,"different_number_of_urls":0,"different_urls":0,"leading_whitespace":0,"trailing_whitespace":0,"different_number_of_email_address":0,"different_email_address":0,"different_brackets":0,"different_numbers":0,"double_space":1,"special_placeholder":0,"unbalanced_brackets":0},"languages":[{"language_id":640,"language_iso":"en-us","project_language_id":1131,"project_language_uuid":"0193257d-e178-79ba-933d-ce16bb0980f3","progress":0,"words_to_do":0},{"language_id":610,"language_iso":"en-gb","project_language_id":1132,"project_language_uuid":"019348b2-ce10-72f9-85a3-44c940c8f29a","progress":0,"words_to_do":0}]}},"schema":{"$ref":"#/components/schemas/Projects"}}}}},"summary":"Create a project","operationId":"Create a project","description":"Creates a new project in the specified team. Requires *Admin* role in the team.\n\nRequires <code>write_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[],"requestBody":{"content":{"application/json":{"example":{"name":"TheApp Project","description":"iOS + Android strings of TheApp. https://theapp.com","languages":[{"lang_iso":"en","custom_iso":"en-us"},{"lang_iso":"en_GB","custom_iso":"en-gb"}],"base_lang_iso":"en-us"},"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the project."},"team_id":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"ID of the team to create a project in. It could be numerical ID or team UUID. If this parameter is omitted, the project will be created in current team of the user, whose API token is specified."},"description":{"type":"string","description":"Description of the project."},"languages":{"type":"array","items":{"type":"object","required":["lang_iso"],"properties":{"lang_iso":{"type":"string","description":"A unique language code in the system."},"custom_iso":{"type":"string","description":"Override language/locale code."}}},"description":"List of languages to add."},"base_lang_iso":{"type":"string","description":"Language/locale code of the project base language. Should be in a scope of <code>languages</code> list. Use <code>custom_iso</code> code in case it was defined."},"project_type":{"type":"string","description":"Project type. Available types:\n- <code>localization_files</code> - **Web and mobile** (previously known as \"Software projects\")  - Supports branching, individual key management, JWT/OTA tokens\n- <code>paged_documents</code> - **Documents projects** (Ad hoc documents) - Supports file-based management, file deletion\n- <code>content_integration</code> - **Marketing projects** (Marketing and support) - Limited key parameters, file-based management\n- <code>marketing</code> - **Marketing projects** - Automatically translated marketing projects\n- <code>marketing_integrations</code> - **Marketing projects with integrations** - Automatically translated marketing projects with integrations\n","enum":["localization_files","paged_documents","content_integration","marketing","marketing_integrations"]},"content_integration":{"type":"string","description":"Content integration type. Required if <code>project_type</code> = <code>content_integration</code>. Should contain one of the available integrations for your team."},"is_segmentation_enabled":{"type":"boolean","description":"Enable Segmentation feature for project."}}}}}}}},"/projects/{project_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","project_type":"localization_files","name":"TheApp Project","description":"iOS + Android strings of TheApp. https://theapp.com","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com","team_id":12345,"base_language_id":640,"base_language_iso":"en","settings":{"per_platform_key_names":false,"reviewing":false,"auto_toggle_unverified":true,"offline_translation":false,"key_editing":true,"inline_machine_translations":true,"custom_translation_statuses":true,"custom_translation_statuses_allow_multiple":false,"segmentation":false,"contributor_preview_download_enabled":false},"statistics":{"progress_total":87,"keys_total":13,"team":2,"base_words":22,"qa_issues_total":65,"qa_issues":{"not_reviewed":39,"unverified":7,"spelling_grammar":4,"inconsistent_placeholders":5,"inconsistent_html":1,"different_number_of_urls":0,"different_urls":1,"leading_whitespace":1,"trailing_whitespace":0,"different_number_of_email_address":0,"different_email_address":0,"different_brackets":6,"different_numbers":1,"double_space":1,"special_placeholder":0,"unbalanced_brackets":0},"languages":[{"language_id":640,"language_iso":"en","progress":100,"words_to_do":0},{"language_id":800,"language_iso":"lv_LV","progress":100,"words_to_do":0},{"language_id":673,"language_iso":"fr","progress":63,"words_to_do":8}]}},"schema":{"$ref":"#/components/schemas/Projects"}}}}},"summary":"Retrieve a project","operationId":"Retrieve a project","description":"Retrieves a [Project](#object-projects) object.\n\nRequires <code>read_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","project_type":"localization_files","name":"TheApp Project","description":"iOS + Android strings of TheApp. https://theapp.com","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com","team_id":12345,"base_language_id":640,"base_language_iso":"en","settings":{"per_platform_key_names":false,"reviewing":false,"auto_toggle_unverified":true,"offline_translation":false,"key_editing":true,"inline_machine_translations":true,"custom_translation_statuses":true,"custom_translation_statuses_allow_multiple":false,"segmentation":false,"contributor_preview_download_enabled":false},"statistics":{"progress_total":87,"keys_total":13,"team":2,"base_words":22,"qa_issues_total":65,"qa_issues":{"not_reviewed":39,"unverified":7,"spelling_grammar":4,"inconsistent_placeholders":5,"inconsistent_html":1,"different_number_of_urls":0,"different_urls":1,"leading_whitespace":1,"trailing_whitespace":0,"different_number_of_email_address":0,"different_email_address":0,"different_brackets":6,"different_numbers":1,"double_space":1,"special_placeholder":0,"unbalanced_brackets":0},"languages":[{"language_id":640,"language_iso":"en","progress":100,"words_to_do":0},{"language_id":800,"language_iso":"lv_LV","progress":100,"words_to_do":0},{"language_id":673,"language_iso":"fr","progress":63,"words_to_do":8}]}},"schema":{"$ref":"#/components/schemas/Projects"}}}}},"summary":"Update a project","operationId":"Update a project","description":"Updates the details of a project. Requires *Manage settings* admin right.\n\nRequires <code>write_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"name":"TheZapp Project","description":"iOS + Android strings of TheZapp. https://thezapp.com"},"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the project."},"description":{"type":"string","description":"Description of the project."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"project_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a project","operationId":"Delete a project","description":"Deletes a project.\n\nRequires <code>write_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/empty":{"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","keys_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"keys_deleted":{"type":"boolean"}}}}}}},"summary":"Empty a project","operationId":"Empty a project","description":"Deletes all keys and translations from the project. Requires *Manage settings* admin right.\n\nRequires <code>write_projects</code> OAuth access scope.","tags":["Projects"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/processes":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Pagination-Total-Count":{"schema":{"type":"string"}},"X-Pagination-Page-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"767946315e9866d013c1d0.08299127","processes":[{"process_id":"2e0559e60e856555fbc15bdf78ab2b0ca3406e8f","type":"file-import","status":"finished","message":"","created_by":1234,"created_by_email":"example@example.com","created_at":"2020-04-20 13:43:43 (Etc/UTC)","created_at_timestamp":1587390223},{"process_id":"f70bbf40059386a568d42c0f80297477e252cc48","type":"file-import","status":"finished","message":"","created_by":1234,"created_by_email":"example@example.com","created_at":"2020-04-20 13:48:00 (Etc/UTC)","created_at_timestamp":1587390480}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"processes":{"type":"array","items":{"$ref":"#/components/schemas/QueuedProcesses"}}}}}}}},"summary":"List all processes","operationId":"List all processes","description":"Retrieves a list of [Queued process](#object-queued-processes) objects.\n\nRequires <code>read_background_processes</code> OAuth access scope.","tags":["Queued Processes"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/projects/{project_id}/processes/{process_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"767946315e9866d013c1d0.08299127","process":{"process_id":"2e0559e60e856555fbc15bdf78ab2b0ca3406e8f","type":"file-import","status":"finished","message":"","created_by":1234,"created_by_email":"example@example.com","created_at":"2020-04-20 13:43:43 (Etc/UTC)","created_at_timestamp":1587390223,"details":{"files":[{"status":"finished","message":"","name_original":"index.json","name_custom":"index.json","word_count_total":2,"key_count_total":1,"key_count_inserted":0,"key_count_updated":0,"key_count_skipped":1}]}}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"process":{"$ref":"#/components/schemas/QueuedProcesses"}}}}}}},"summary":"Retrieve a process","operationId":"Retrieve a process","description":"Retrieves a [Queued process](#object-queued-processes) object with an additional <code>details</code> field containing information for a specific process type.\n\nRequires <code>read_background_processes</code> OAuth access scope.","tags":["Queued Processes"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"process_id","in":"path","description":"A unique process identifier.","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/screenshots":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"screenshots":{"type":"array","items":{"$ref":"#/components/schemas/Screenshots"}}}}}}}},"summary":"List all screenshots","operationId":"List all screenshots","description":"Retrieves a list of screenshots from the project.\n\nRequires <code>read_screenshots</code> OAuth access scope.","tags":["Screenshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"screenshots":{"type":"array","items":{"$ref":"#/components/schemas/Screenshots"}}}}}}}},"summary":"Create screenshots","operationId":"Create screenshots","description":"Creates one or more screenshots in the project. Requires *Manage screenshots* admin right.\n\nRequires <code>write_screenshots</code> OAuth access scope.","tags":["Screenshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"screenshots":[{"data":"data:image/jpeg;base64,D94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGL.....","ocr":false,"key_ids":[1132290,1132292,1132293],"tags":["onboarding"]}]},"schema":{"type":"object","properties":{"screenshots":{"type":"array","items":{"type":"object","required":["data"],"properties":{"data":{"type":"string","description":"The screenshot, base64 encoded (with leading image type <code>data:image/jpeg;base64,</code>). Supported file formats are JPG and PNG."},"title":{"type":"string","description":"Set screenshot title (optional)."},"description":{"type":"string","description":"Set screenshot description."},"ocr":{"type":"boolean","description":"Try to recognize translations on the image and attach screenshot to all possible keys."},"key_ids":{"type":"array","items":{"type":"string"},"description":"Attach the screenshot to key IDs specified."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to add to the uploaded screenshot."}}},"description":"List of the screenshot objects"}}}}}}}},"/projects/{project_id}/screenshots/{screenshot_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"screenshot":{"$ref":"#/components/schemas/Screenshots"}}}}}}},"summary":"Retrieve a screenshot","operationId":"Retrieve a screenshot","description":"Retrieves a [Screenshot](#object-screenshots) object.\n\nRequires <code>read_screenshots</code> OAuth access scope.","tags":["Screenshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"screenshot_id","in":"path","description":"A unique identifier of the screenshot.","required":true,"schema":{"type":"number"}}]},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","screenshot_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"screenshot_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a screenshot","operationId":"Delete a screenshot","description":"Deletes a screenshot from the project. Requires *Manage screenshots* admin right.\n\nRequires <code>write_screenshots</code> OAuth access scope.","tags":["Screenshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"screenshot_id","in":"path","description":"A unique identifier of the screenshot.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"screenshot":{"$ref":"#/components/schemas/Screenshots"}}}}}}},"summary":"Update a screenshot","operationId":"Update a screenshot","description":"Updates the properties of a screenshot. Requires *Manage screenshots* admin right.\n\nRequires <code>write_screenshots</code> OAuth access scope.","tags":["Screenshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"screenshot_id","in":"path","description":"A unique identifier of the screenshot.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"key_ids":[1132290,1132292],"tags":["main"]},"schema":{"type":"object","properties":{"title":{"type":"string","description":"Set screenshot title (optional)."},"description":{"type":"string","description":"Set screenshot description."},"key_ids":{"type":"array","items":{"type":"string"},"description":" Attach the screenshot to key IDs specified."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to add to the uploaded screenshot."}}}}}}}},"/projects/{project_id}/keys/{key_id}/segments/{language_iso}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/Segments"}}}}}}}},"summary":"List all segments for key language","operationId":"List all segments for key language","description":"Retrieves a list of key segment items.","tags":["Segments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"language_iso","in":"path","description":"Language code.","required":true,"schema":{"type":"string"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_is_reviewed","in":"query","description":"Filter translations which are reviewed. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_unverified","in":"query","description":"Filter translations which are unverified (fuzzy). Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_untranslated","in":"query","description":"Filter by untranslated keys. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_qa_issues","in":"query","description":"One or more QA issues to filter by (comma separated). Possible values are <code>spelling\\_and\\_grammar</code>, <code>placeholders</code>, <code>html</code>, <code>url\\_count</code>, <code>url</code>, <code>email\\_count</code>, <code>email</code>, <code>brackets</code>, <code>numbers</code>, <code>leading\\_whitespace</code>, <code>trailing\\_whitespace</code>, <code>double\\_space</code> and <code>special\\_placeholder</code>.","required":false,"schema":{"type":"string"}}]}},"/projects/{project_id}/keys/{key_id}/segments/{language_iso}/{segment_number}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","key_id":413204,"langauge_iso":"en_US","segment":{"segment_number":1,"language_iso":"en_US","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"modified_by":420,"modified_by_email":"user@mycompany.com","translation":"Hello, world!","is_fuzzy":true,"is_reviewed":false,"reviewed_by":0,"words":2,"custom_translation_statuses":{}}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"segment":{"$ref":"#/components/schemas/Segments"}}}}}}},"summary":"Retrieve a segment for key language","operationId":"Retrieve a segment for key language","description":"Retrieves a [Segment](#object-segments) object.","tags":["Segments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"language_iso","in":"path","description":"Language code.","required":true,"schema":{"type":"string"}},{"name":"segment_number","in":"path","description":"Segment number","required":true,"schema":{"type":"number"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","key_id":413204,"langauge_iso":"en_US","segment":{"segment_number":1,"language_iso":"en_US","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"modified_by":420,"modified_by_email":"user@mycompany.com","value":"Quick brown fox jumps over the lazy dog.","is_fuzzy":false,"is_reviewed":true,"reviewed_by":1357,"words":8,"custom_translation_statuses":{}}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"segment":{"$ref":"#/components/schemas/Segments"}}}}}}},"summary":"Update a segment","operationId":"Update a segment","description":"Updates a segment.","tags":["Segments"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"key_id","in":"path","description":"A unique identifier of the key.","required":true,"schema":{"type":"number"}},{"name":"language_iso","in":"path","description":"Language code.","required":true,"schema":{"type":"string"}},{"name":"segment_number","in":"path","description":"Segment number","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"value":"Quick brown fox jumps over the lazy dog.","is_fuzzy":false,"is_reviewed":true},"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"The actual translation content. Use an JSON object for plural keys."},"is_fuzzy":{"type":"boolean","description":"Whether the Fuzzy flag is enabled. (Note: Fuzzy is called Unverified in the editor now)."},"is_reviewed":{"type":"boolean","description":"Whether the Reviewed flag is enabled."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Custom translation status IDs to assign to translation (existing statuses will be replaced)."}}}}}}}},"/projects/{project_id}/snapshots":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","snapshots":[{"snapshot_id":1523966589,"title":"API snapshot","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com"},{"snapshot_id":1523966599,"title":"API snapshot","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com"}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"snapshots":{"type":"array","items":{"$ref":"#/components/schemas/Snapshots"}}}}}}}},"summary":"List all snapshots","operationId":"List all snapshots","description":"Retrieves a list of project snapshots. Requires *Manage settings* admin right.\n\nRequires <code>read_snapshots</code> OAuth access scope.","tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","snapshot":{"snapshot_id":1523966599,"title":"API snapshot","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com"}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"snapshot":{"$ref":"#/components/schemas/Snapshots"}}}}}}},"summary":"Create a snapshot","operationId":"Create a snapshot","description":"Creates snapshot of the project. Requires *Manage settings* admin right.\n\nRequires <code>write_snapshots</code> OAuth access scope.","tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"title":"API snapshot"},"schema":{"type":"object","properties":{"title":{"type":"string","description":"Set snapshot title."}}}}}}}},"/projects/{project_id}/snapshots/{snapshot_id}":{"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","project_type":"localization_files","name":"TheApp Project Copy","description":"iOS + Android strings of TheApp. https://theapp.com","created_at":"2018-12-13 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"created_by":420,"created_by_email":"user@mycompany.com","team_id":12345,"base_language_id":640,"base_language_iso":"en","settings":{"per_platform_key_names":false,"reviewing":false,"auto_toggle_unverified":true,"offline_translation":false,"key_editing":true,"inline_machine_translations":true,"custom_translation_statuses":true,"custom_translation_statuses_allow_multiple":false,"contributor_preview_download_enabled":false},"statistics":{"progress_total":87,"keys_total":13,"team":2,"base_words":22,"qa_issues_total":65,"qa_issues":{"not_reviewed":39,"unverified":7,"spelling_grammar":4,"inconsistent_placeholders":5,"inconsistent_html":1,"different_number_of_urls":0,"different_urls":1,"leading_whitespace":1,"trailing_whitespace":0,"different_number_of_email_address":0,"different_email_address":0,"different_brackets":6,"different_numbers":1,"double_space":1,"special_placeholder":0,"unbalanced_brackets":0},"languages":[{"language_id":640,"language_iso":"en","progress":100,"words_to_do":0},{"language_id":800,"language_iso":"lv_LV","progress":100,"words_to_do":0},{"language_id":673,"language_iso":"fr","progress":63,"words_to_do":8}]}},"schema":{"$ref":"#/components/schemas/Projects"}}}}},"summary":"Restore a snapshot","operationId":"Restore a snapshot","description":"Restores project snapshot to a project copy. Requires *Manage settings* admin right and *Admin* role in the team.\n\nRequires <code>write_snapshots</code> OAuth access scope.","tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"snapshot_id","in":"path","description":"A unique identifier of the snapshot.","required":true,"schema":{"type":"number"}}]},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","snapshot_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"snapshot_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a snapshot","operationId":"Delete a snapshot","description":"Deletes project snapshot. Requires *Manage settings* admin right.\n\nRequires <code>write_snapshots</code> OAuth access scope.","tags":["Snapshots"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"snapshot_id","in":"path","description":"A unique identifier of the snapshot.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/tasks":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","tasks":[{"task_id":55392,"title":"Voicemail messages","can_be_parent":false,"task_type":"translation","parent_task_id":12345,"closing_tags":["tag_one","tag_two"],"do_lock_translations":false,"description":"Need your help with some voicemail message translation. Thanks!","status":"in_progress","progress":25,"due_date":"2024-12-31 12:00:00 (Etc/UTC)","due_date_timestamp":1546257600,"keys_count":3,"words_count":91,"created_at":"2021-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1640944800,"created_by":420,"created_by_email":"manager@yourcompany.com","languages":[{"language_iso":"fi","language_id":610,"language_name":"Finnish","users":[{"user_id":421,"email":"jdoe@mycompany.com","fullname":"John Doe"}],"groups":[{"id":191,"name":"Voicemail translators"}],"keys":[11212,11241,11245],"status":"created","progress":0,"initial_tm_leverage":{"0%+":91,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":0,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null},{"language_iso":"ru","language_id":643,"language_name":"Russian","users":[{"user_id":422,"email":"jfox@mycompany.com","fullname":"James Fox"}],"groups":{},"keys":[11212,11241,11245],"status":"in progress","progress":80,"initial_tm_leverage":{"0%+":91,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":73,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null}],"source_language_iso":"en","auto_close_languages":true,"auto_close_task":true,"auto_close_items":true,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null,"custom_translation_status_ids":[77,85,86]}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/Tasks"}}}}}}}},"summary":"List all tasks","operationId":"List all tasks","description":"Lists all tasks in the project.\n\nRequires <code>read_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"filter_title","in":"query","description":"Set title filter for the list.","required":false,"schema":{"type":"string"}},{"name":"filter_statuses","in":"query","description":"One or more task statuses to filter by (comma separated). Possible values are <code>created</code>, <code>queued</code>, <code>in\\_progress</code> and <code>completed</code>.\n","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","task":{"task_id":55392,"title":"Voicemail messages","description":"Need your help with some voicemail message translation. Thanks!","status":"in_progress","progress":0,"can_be_parent":true,"task_type":"review","parent_task_id":12345,"closing_tags":["tag_one","tag_two"],"do_lock_translations":true,"due_date":"2024-12-31 12:00:00 (Etc/UTC)","due_date_timestamp":1546257600,"keys_count":3,"words_count":91,"created_at":"2021-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1640944800,"created_by":420,"created_by_email":"manager@yourcompany.com","languages":[{"language_iso":"fi","language_id":610,"language_name":"Finnish","users":[{"user_id":421,"email":"jdoe@mycompany.com","fullname":"John Doe"}],"groups":{},"keys":[11212,11241,11245],"status":"created","progress":0,"initial_tm_leverage":{"0%+":0,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":0,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null},{"language_iso":"ru","language_id":643,"language_name":"Russian","users":{},"groups":[{"id":191,"name":"Voicemail translators"}],"keys":[11212,11241,11245],"status":"in progress","progress":0,"initial_tm_leverage":{"0%+":0,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":0,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null}],"source_language_iso":"en","auto_close_languages":true,"auto_close_task":true,"auto_close_items":true,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null,"custom_translation_status_ids":[77,85,86]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"task":{"$ref":"#/components/schemas/Tasks"},"skipped_languages":{"type":"array","description":"Present only when some requested languages were ignored for AI tasks. Each entry describes an ignored language and the reason.","items":{"type":"object","required":["language_iso","reason"],"properties":{"language_iso":{"type":"string","description":"Language code that was ignored."},"reason":{"type":"string","description":"Reason why language was ignored."},"message":{"type":"string","description":"Human-readable explanation."}}}}}}}}}},"summary":"Create a task","operationId":"Create a task","description":"Creates a task in the project. Requires *Manage tasks* admin right.\nKeep in mind, that <code>initial_tm_leverage</code> attribute will be empty in server response. It's being calculated after the task is created and this process may take some time.\n\nRequires <code>write_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"title":"Voicemail messages","description":"Need your help with some voicemail message translation. Thanks!","due_date":"2024-12-31 12:00:00","keys":[11212,11241,11245],"languages":[{"language_iso":"fi","users":[421]},{"language_iso":"ru","groups":[191]}],"source_language_iso":"en","auto_close_languages":true,"auto_close_task":true,"auto_close_items":true,"task_type":"translation","parent_task_id":12345,"closing_tags":["tag_one","tag_two"],"do_lock_translations":true,"custom_translation_status_ids":[77,85,86]},"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"Task title."},"description":{"type":"string","description":"Brief task description. Used as instructions for AI in <code>automatic_translation</code> and <code>lqa_by_ai</code> task types."},"due_date":{"type":"string","description":"Due date in <code>Y-m-d H:i:s</code> format. Example: \"2024-12-24 23:59:59\""},"keys":{"type":"array","items":{"type":"string"},"description":"List of keys identifiers, included in task. Required if <code>parent_task_id</code> is not specified"},"languages":{"type":"array","items":{"type":"object","required":["language_iso"],"properties":{"language_iso":{"type":"string","description":"Language code."},"users":{"type":"array","items":{"type":"string"},"description":"List of user identifiers assigned to work on the language. **Must** be omitted for `automatic_translation` and `lqa_by_ai` task types."},"groups":{"type":"array","items":{"type":"string"},"description":"List of user-group identifiers assigned to work on the language. **Must** be omitted for `automatic_translation` and `lqa_by_ai` task types."}}},"description":"List of languages in the task. For <code>automatic_translation</code> and <code>lqa_by_ai</code> task types, unsupported languages will be ignored and returned in <code>skipped_languages</code> in the response."},"source_language_iso":{"type":"string","description":"Source language code for the task. Falls back to project base language if not provided."},"auto_close_languages":{"type":"boolean","description":"Whether languages should be closed automatically upon completion of the last item. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"auto_close_task":{"type":"boolean","description":"Whether the task should be automatically closed upon all language completion. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"auto_close_items":{"type":"boolean","description":"Whether the <code>translation</code> task items should be automatically marked as completed on edit. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"task_type":{"type":"string","default":"translation","enum":["translation","automatic_translation","lqa_by_ai","review"],"description":"Specify if task type is <code>translation</code> (default), <code>automatic_translation</code>, <code>lqa_by_ai</code> or <code>review</code>."},"parent_task_id":{"type":"number","description":"If <code>task_type</code> is <code>review</code>, it can have a parent task. Current task will be opened when parent task is closed."},"closing_tags":{"type":"array","items":{"type":"string"},"description":"Tags that will be added to affected keys when task is closed."},"do_lock_translations":{"type":"boolean","description":"If set to true, will lock translations for non-assigned project members."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"IDs of custom translation statuses that will be applied to task items after item is completed."},"save_ai_translation_to_tm":{"type":"boolean","default":false,"description":"Save AI translations to Translation Memory. Only applicable for tasks with <code>task_type</code> set to <code>automatic_translation</code>. Defaults to false."},"apply_ai_tm100_matches":{"type":"boolean","default":false,"description":"Apply 100% translation memory matches. Only applicable for tasks with <code>task_type</code> set to <code>automatic_translation</code>. Defaults to false."},"mark_verified":{"type":"boolean","default":true,"description":"Mark translations as verified. Only applicable for tasks with <code>task_type</code> set to <code>automatic_translation</code>. Defaults to true."},"translate_all_segments":{"type":"boolean","default":false,"description":"Translate all segments including those with existing translations or TM matches. Only applicable for tasks with <code>task_type</code> set to <code>automatic_translation</code> in projects with segmentation enabled. When false, only empty segments will be translated. This parameter can only be set during task creation and cannot be modified or retrieved afterwards. Defaults to false."}}}}}}}},"/projects/{project_id}/tasks/{task_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","project_uuid":"01982dac-63a6-7d46-9b6c-27b02113b7ff","project_name":"TestProj","branch_name":"master","task":{"task_id":55392,"title":"Voicemail messages","description":"Need your help with some voicemail message translation. Thanks!","status":"in_progress","progress":80,"can_be_parent":true,"task_type":"review","parent_task_id":12345,"closing_tags":["tag_one","tag_two"],"do_lock_translations":false,"due_date":"20242-12-31 12:00:00 (Etc/UTC)","due_date_timestamp":1546257600,"keys_count":3,"words_count":91,"created_at":"2021-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1640944800,"created_by":420,"created_by_email":"manager@yourcompany.com","created_by_fullname":"Manager Name","languages":[{"language_iso":"fi","language_id":610,"language_name":"Finnish","users":[{"user_id":421,"email":"jdoe@mycompany.com","fullname":"John Doe","is_admin":true}],"groups":[{"id":191,"name":"Voicemail translators"}],"keys":[11212,11241,11245],"status":"created","progress":0,"initial_tm_leverage":{"0%+":91,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":0,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null,"completed_by_fullname":null},{"language_iso":"ru","language_id":643,"language_name":"Russian","users":[{"user_id":422,"email":"jfox@mycompany.com","fullname":"James Fox","is_admin":false}],"groups":[{"id":191,"name":"Voicemail translators"}],"keys":[11212,11241,11245],"status":"in progress","progress":90,"initial_tm_leverage":{"0%+":60,"60%+":0,"75%+":31,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":82,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null,"completed_by_fullname":null}],"source_language_iso":"en","auto_close_languages":true,"auto_close_task":true,"auto_close_items":true,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null,"completed_by_fullname":null,"custom_translation_status_ids":[77,85,86]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"project_uuid":{"type":"string","format":"uuid","description":"UUID of the project."},"project_name":{"type":"string","description":"Project name."},"branch_name":{"type":"string","nullable":true,"description":"Branch name (if applicable)."},"task":{"$ref":"#/components/schemas/DetailedTasks"}}}}}}},"summary":"Retrieve a task","operationId":"Retrieve a task","description":"Retrieves a [Task](#object-tasks) object.\n\nRequires <code>read_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","description":"A unique task identifier.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","task":{"task_id":55392,"title":"Voicemail messages","description":"Need your help with some voicemail message translation. Thanks!","status":"in_progress","progress":40,"can_be_parent":true,"task_type":"translation","parent_task_id":12345,"closing_tags":["tag_one","tag_two"],"do_lock_translations":false,"due_date":"2024-12-31 12:00:00 (Etc/UTC)","due_date_timestamp":1546257600,"keys_count":3,"words_count":91,"created_at":"2021-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1640944800,"created_by":420,"created_by_email":"manager@yourcompany.com","languages":[{"language_iso":"fi","language_id":610,"language_name":"Finnish","users":[{"user_id":421,"email":"jdoe@mycompany.com","fullname":"John Doe"}],"groups":[{"id":191,"name":"Voicemail translators"}],"keys":[11212,11241,11245],"status":"created","progress":0,"initial_tm_leverage":{"0%+":0,"60%+":31,"75%+":60,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":0,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null},{"language_iso":"ru","language_id":643,"language_name":"Russian","users":[{"user_id":422,"email":"jfox@mycompany.com","fullname":"James Fox"}],"groups":{},"keys":[11212,11241,11245],"status":"in progress","progress":90,"initial_tm_leverage":{"0%+":91,"60%+":0,"75%+":0,"95%+":0,"100%":0},"tm_leverage":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"keys_count":3,"words_count":91,"done_words_count":82,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null}],"source_language_iso":"en","auto_close_languages":false,"auto_close_task":false,"completed_at":null,"completed_at_timestamp":null,"completed_by":null,"completed_by_email":null}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"task":{"$ref":"#/components/schemas/Tasks"}}}}}}},"summary":"Update a task","operationId":"Update a task","description":"Updates the properties of a task. Requires *Manage tasks* admin right.\n\nRequires <code>write_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","description":"A unique task identifier.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"due_date":"2024-12-31 12:00:00","auto_close_languages":false,"auto_close_task":false},"schema":{"type":"object","properties":{"title":{"type":"string","description":"Task title."},"description":{"type":"string","description":"Brief task description. Used as instructions for AI in <code>automatic_translation</code> and <code>lqa_by_ai</code> task types."},"due_date":{"type":"string","description":"Due date in <code>Y-m-d H:i:s</code> format. Example: \"2024-12-24 23:59:59\""},"languages":{"type":"array","items":{"type":"object","properties":{"language_iso":{"type":"string","description":"Language code."},"users":{"type":"array","items":{"type":"string"},"description":"List of user identifiers, assigned to work on the language."},"groups":{"type":"array","items":{"type":"string"},"description":"List of group identifiers, assigned to work on the language."},"close_language":{"type":"boolean","description":"Whether the language should be closed and notifications sent. Action cannot be undone."}}},"description":"List of languages in the task. This field **must** be omitted for <code>automatic_translation</code> and <code>lqa_by_ai</code> task types."},"auto_close_languages":{"type":"boolean","description":"Whether languages should be closed automatically upon completion of the last item. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"auto_close_task":{"type":"boolean","description":"Whether the task should be automatically closed upon all language completion. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"auto_close_items":{"type":"boolean","description":"Whether the <code>translation</code> task items should be automatically marked as completed on edit. **Must** be <code>true</code> or omit the property for `automatic_translation` and `lqa_by_ai` task types."},"close_task":{"type":"boolean","description":"Whether the task should be closed and notifications sent. The task cannot be reopened again."},"closing_tags":{"type":"array","items":{"type":"string"},"description":"Tags that will be added to affected keys when task is closed."},"do_lock_translations":{"type":"boolean","description":"If set to true, will lock translations for non-assigned project members."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","task_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"task_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a task","operationId":"Delete a task","description":"Deletes a task from the project. Requires *Manage tasks* admin right.\n\nRequires <code>write_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","description":"A unique task identifier.","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/tasks/{task_id}/usage-metrics":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"data":{"processed_words":1542}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"processed_words":{"type":"integer","description":"The number of processed words consumed by the given task."}}}}}}}}},"summary":"Retrieve task usage metrics","operationId":"Retrieve task usage metrics","description":"Retrieves usage metrics for a specific task. Data is available from November 3rd 2025 onwards.\n\nRequires <code>read_tasks</code> OAuth access scope.","tags":["Tasks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"task_id","in":"path","description":"A unique task identifier.","required":true,"schema":{"type":"number"}}]}},"/teams/{team_id}/groups":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"team_id":444,"user_groups":[{"group_id":50031,"name":"Proofreaders","permissions":{"is_admin":false,"is_reviewer":true,"languages":[{"lang_id":640,"lang_iso":"en","lang_name":"English","is_writable":1},{"lang_id":597,"lang_iso":"ru","lang_name":"Russian","is_writable":1}],"admin_rights":{}},"created_at":"2019-01-08 09:10:46 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":["598901215bexxx43dcba74.xxx"],"members":[22212]}]},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"user_groups":{"type":"array","items":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}}},"summary":"List all groups","operationId":"List all groups","description":"Lists all user groups in the team.\n\nRequires <code>read_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreaders","permissions":{"is_admin":false,"is_reviewer":false,"admin_rights":{},"role_id":1,"languages":[{"lang_id":640,"lang_iso":"en","lang_name":"English","is_writable":true}]},"created_at":"2019-01-08 09:10:46 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":{}}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Create a group","operationId":"Create a group","description":"Creates a group in the team. Requires *Admin* right in the team.\n\nIf `is_admin` flag is set to `true`, the group would automatically get access to all project languages, overriding supplied `languages` object.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"name":"Proofreaders","is_reviewer":true,"is_admin":false,"admin_rights":{},"languages":{"reference":{},"contributable":[640]}},"schema":{"type":"object","required":["name","is_reviewer","is_admin"],"properties":{"name":{"type":"string","description":"Name of the group."},"is_reviewer":{"type":"boolean","description":"Whether the group has reviewer access to the project. From the new permission release onwards is deprecated."},"is_admin":{"type":"boolean","description":"Whether the group has Admin access to the project. From the new permission release onwards is deprecated."},"role_id":{"type":"number","description":"Permission template id to grab permissions from, if provided admin_rights is ignored.","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}},"admin_rights":{"type":"array","items":{"type":"string","enum":["Required","activity","contributors","create_branches","download","glossary","keys","languages","screenshots","settings","statistics","tasks","upload"]},"description":"List of group permissions. Possible values are <code>activity</code>,<code>contributors</code>,<code>branches_create</code>,<code>branches_main_modify</code>,<code>branches_merge</code>,<code>custom_status_modify</code>,<code>download</code>,<code>glossary</code>,<code>glossary_edit</code>,<code>glossary_delete</code>,<code>keys</code>,<code>manage_languages</code>,<code>review</code>,<code>screenshots</code>,<code>settings</code>,<code>statistics</code>,<code>tasks</code>,<code>upload</code>."},"languages":{"type":"object","properties":{"reference":{"type":"array","items":{"type":"string"},"description":"List of reference language IDs for the group"},"contributable":{"type":"array","items":{"type":"string"},"description":"List of contributable language IDs for the group"}},"description":"<code>Required</code> if group doesn't have admin rights."}}}}}}}},"/teams/{team_id}/groups/{group_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"group_id":50031,"name":"Proofreaders","permissions":{"is_admin":false,"is_reviewer":true,"admin_rights":{},"languages":[{"lang_id":640,"lang_iso":"en","lang_name":"English","is_writable":true}]},"created_at":"2019-01-08 09:15:28 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":{}},"schema":{"$ref":"#/components/schemas/TeamUserGroups"}}}}},"summary":"Retrieve a group","operationId":"Retrieve a group","description":"Retrieves a [User group](#object-user-groups) object.\n\nRequires <code>read_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreading admins","permissions":{"is_admin":true,"is_reviewer":true,"role_id":1,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{}},"created_at":"2019-01-08 09:15:28 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":{}}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Update a group","operationId":"Update a group","description":"Updates the properties of a group. Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"name":"Proofreading admins","is_reviewer":true,"is_admin":true,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{"reference":{},"contributable":{}}},"schema":{"type":"object","required":["name","is_reviewer","is_admin"],"properties":{"name":{"type":"string","description":"Name of the group."},"is_reviewer":{"type":"boolean","description":"Whether the group has Reviewer access to the project. From the new permission release onwards is deprecated."},"is_admin":{"type":"boolean","description":"Whether the group has Admin access to the project. From the new permission release onwards is deprecated."},"role_id":{"type":"number","description":"Permission template id to grab permissions from, if provided admin_rights is ignored.","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}},"admin_rights":{"type":"array","items":{"type":"string","enum":["Required","activity","contributors","create_branches","download","glossary","keys","languages","screenshots","settings","statistics","tasks","upload"]},"description":"List of group permissions. Possible values are <code>activity</code>,<code>contributors</code>,<code>branches_create</code>,<code>branches_main_modify</code>,<code>branches_merge</code>,<code>custom_status_modify</code>,<code>download</code>,<code>glossary</code>,<code>glossary_edit</code>,<code>glossary_delete</code>,<code>keys</code>,<code>manage_languages</code>,<code>review</code>,<code>screenshots</code>,<code>settings</code>,<code>statistics</code>,<code>tasks</code>,<code>upload</code>."},"languages":{"type":"object","properties":{"reference":{"type":"array","items":{"type":"string"},"description":"List of reference language IDs for the group"},"contributable":{"type":"array","items":{"type":"string"},"description":"List of contributable language IDs for the group"}},"description":"<code>Required</code> if group doesn't have admin rights."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group_deleted":true},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a group","operationId":"Delete a group","description":"Deletes a group from the team. Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}]}},"/teams/{team_id}/groups/{group_id}/projects/add":{"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreading admins","permissions":{"is_admin":true,"is_reviewer":true,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{}},"created_at":"2019-01-07 14:21:44 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":["598901215bexxx43dcba74.xxx"],"members":{}}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Add projects to group","operationId":"Add projects to group","description":"Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"projects":["598901215bexxx43dcba74.xxx"]},"schema":{"type":"object","required":["projects"],"properties":{"projects":{"type":"array","items":{"type":"string"},"description":"List of project IDs to add to group."}}}}}}}},"/teams/{team_id}/groups/{group_id}/projects/remove":{"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreading admins","permissions":{"is_admin":true,"is_reviewer":true,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{}},"created_at":"2019-01-07 14:21:44 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":{}}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Remove projects from group","operationId":"Remove projects from group","description":"Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"projects":["598901215bexxx43dcba74.xxx"]},"schema":{"type":"object","required":["projects"],"properties":{"projects":{"type":"array","items":{"type":"string"},"description":"List of project IDs to remove from group."}}}}}}}},"/teams/{team_id}/groups/{group_id}/members/add":{"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreading admins","permissions":{"is_admin":true,"is_reviewer":true,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{}},"created_at":"2019-01-07 14:21:44 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":[22212]}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Add members to group","operationId":"Add members to group","description":"Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"users":[22212]},"schema":{"type":"object","required":["users"],"properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of user IDs to add to group."}}}}}}}},"/teams/{team_id}/groups/{group_id}/members/remove":{"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":444,"group":{"group_id":50031,"name":"Proofreading admins","permissions":{"is_admin":true,"is_reviewer":true,"admin_rights":["upload","download","tasks","contributors","screenshots","glossary","keys","languages","settings","activity","statistics"],"languages":{}},"created_at":"2019-01-07 14:21:44 (Etc/UTC)","created_at_timestamp":1546257600,"team_id":444,"projects":{},"members":{}}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"group":{"$ref":"#/components/schemas/TeamUserGroups"}}}}}}},"summary":"Remove members from group","operationId":"Remove members from group","description":"Requires *Admin* right in the team.\n\nRequires <code>write_team_groups</code> OAuth access scope.","tags":["Team Groups"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"group_id","in":"path","description":"A unique identifier of the group.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"users":[22212]},"schema":{"type":"object","required":["users"],"properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of user IDs to remove from group."}}}}}}}},"/teams/{team_id}/billing_details":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"company":"","address1":"","address2":"","city":"","zip":"LV-1234","phone":"","vatnumber":null,"country_code":"LV","billing_email":"hello@example.com","state_code":""},"schema":{"$ref":"#/components/schemas/TeamUserBillingDetails"}}}}},"summary":"Retrieve team user billing details","operationId":"Retrieve team user billing details","description":"Retrieve a [Team user billing details](#object-team-user-billing-details) object.\n\nRequires <code>read_team_user_billing_details</code> OAuth access scope.","tags":["Team User Billing Details"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"company":"","address1":"","address2":"","city":"","zip":"LV-1234","phone":"","vatnumber":null,"country_code":"LV","billing_email":"hello@example.com","state_code":""},"schema":{"$ref":"#/components/schemas/TeamUserBillingDetails"}}}}},"summary":"Create team user billing details","operationId":"Create team user billing details","description":"Creates a [Team user billing details](#object-team-user-billing-details) object.\n\nRequires <code>write_team_user_billing_details</code> OAuth access scope.","tags":["Team User Billing Details"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"billing_email":"hello@example.com","country_code":"LV","zip":"LV-1234"},"schema":{"type":"object","required":["billing_email","country_code","zip"],"properties":{"billing_email":{"type":"string","description":"Email for invoices and translation orders"},"country_code":{"type":"string","description":"Country code as described in ISO 3166 (alpha-2 code)"},"zip":{"type":"string","description":"Valid postal code for specified country"},"state_code":{"type":"string","description":"<code>Required</code> if country code is <code>US</code>"},"address1":{"type":"string","description":"Address line 1"},"address2":{"type":"string","description":"Address line 2"},"city":{"type":"string","description":"City"},"phone":{"type":"string","description":"Phone"},"company":{"type":"string","description":"Company name"},"vatnumber":{"type":"string","description":"VAT number"}}}}}}},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"company":"","address1":"","address2":"","city":"","zip":"LV-1234","phone":"","vatnumber":null,"country_code":"LV","billing_email":"new-hello@example.com","state_code":""},"schema":{"$ref":"#/components/schemas/TeamUserBillingDetails"}}}}},"summary":"Update team user billing details","operationId":"Update team user billing details","description":"Updates a [Team user billing details](#object-team-user-billing-details) object.\n\nRequires <code>write_team_user_billing_details</code> OAuth access scope.","tags":["Team User Billing Details"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"billing_email":"new-hello@example.com","country_code":"LV","zip":"LV-1234"},"schema":{"type":"object","required":["billing_email","country_code","zip"],"properties":{"billing_email":{"type":"string","description":"Email for invoices and translation orders"},"country_code":{"type":"string","description":"Country code as described in ISO 3166 (alpha-2 code)"},"zip":{"type":"string","description":"Valid postal code for specified country"},"state_code":{"type":"string","description":"<code>Required</code> if country code is <code>US</code>"},"address1":{"type":"string","description":"Address line 1"},"address2":{"type":"string","description":"Address line 2"},"city":{"type":"string","description":"City"},"phone":{"type":"string","description":"Phone"},"company":{"type":"string","description":"Company name"},"vatnumber":{"type":"string","description":"VAT number"}}}}}}}},"/teams/{team_id}/users":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"team_id":18821,"team_users":[{"user_id":420,"email":"jdoe@mycompany.com","fullname":"John Doe","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"role":"owner"},{"user_id":421,"email":"axel@mycompany.com","fullname":"Axel Foley","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"role":"member"}]},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"team_users":{"type":"array","items":{"$ref":"#/components/schemas/TeamUsers"}}}}}}}},"summary":"List all team users","operationId":"List all team users","description":"Lists all team users. Requires *Admin* role in the team.\n\nRequires <code>read_team_users</code> OAuth access scope.","tags":["Team Users"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/teams/{team_id}/users/{user_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":18821,"team_user":{"user_id":420,"email":"jdoe@mycompany.com","fullname":"John Doe","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"role":"owner"}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"team_user":{"$ref":"#/components/schemas/TeamUsers"}}}}}}},"summary":"Retrieve a team user","operationId":"Retrieve a team user","description":"Retrieves a [Team user](#object-team-users) object. Requires *Admin* role in the team.\n\nRequires <code>read_team_users</code> OAuth access scope.","tags":["Team Users"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"user_id","in":"path","description":"A unique identifier of the user.","required":true,"schema":{"type":"number"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":18821,"team_user":{"user_id":421,"email":"axel@mycompany.com","fullname":"Axel Foley","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"role":"admin"}},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"team_user":{"$ref":"#/components/schemas/TeamUsers"}}}}}}},"summary":"Update a team user","operationId":"Update a team user","description":"Updates the role of a team user. Requires *Admin* role in the team.\n\nRequires <code>write_team_users</code> OAuth access scope.","tags":["Team Users"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"user_id","in":"path","description":"A unique identifier of the user.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"role":"admin"},"schema":{"type":"object","properties":{"role":{"type":"string","description":"Role of the user. Available roles are <code>owner</code>, <code>admin</code>, <code>member</code>, <code>biller</code>."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"team_id":18821,"team_user_deleted":true},"schema":{"type":"object","properties":{"team_id":{"type":"integer"},"team_user_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a team user","operationId":"Delete a team user","description":"Deletes a user from the team. Requires *Admin* role in the team.\n\nRequires <code>write_team_users</code> OAuth access scope.","tags":["Team Users"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"user_id","in":"path","description":"A unique identifier of the user.","required":true,"schema":{"type":"number"}}]}},"/teams":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"teams":[{"team_id":18821,"name":"MyCompany, Ltd.","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"plan":"Essential","quota_usage":{"users":14,"keys":8125,"projects":4,"mau":119337,"trafficBytes":20,"ai_words":110},"quota_allowed":{"users":40,"keys":10000,"projects":99999999,"mau":200000,"trafficBytes":20,"ai_words":200}}]},"schema":{"type":"object","properties":{"teams":{"type":"array","items":{"$ref":"#/components/schemas/Teams"}}}}}}}},"summary":"List all teams","operationId":"List all teams","description":"Lists all teams available to the user.\n\nRequires <code>read_team_users</code> OAuth access scope.","tags":["Teams"],"parameters":[{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/teams/{team_id}":{"get":{"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"team":[{"team_id":18821,"name":"MyCompany, Ltd.","created_at":"2018-12-31 12:00:00 (Etc/UTC)","created_at_timestamp":1546257600,"plan":"Essential","quota_usage":{"users":14,"keys":8125,"projects":4,"mau":119337,"trafficBytes":20,"ai_words":110},"quota_allowed":{"users":40,"keys":10000,"projects":99999999,"mau":200000,"trafficBytes":20,"ai_words":200},"is_team_suspended":"false,","is_end_of_trial_active":"false,","trial_days_left":7}]},"schema":{"type":"object","$ref":"#/components/schemas/TeamDetails"}}}}},"summary":"Get team details","operationId":"Get team details","description":"Get details of a specific team.\n\nRequires <code>read_team_users</code> OAuth access scope.","tags":["Teams"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}}]}},"/teams/{team_id}/translation_providers":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TranslationProviders"}}}}}},"summary":"List all providers","operationId":"List all providers","description":"Lists all translation providers.\n\nRequires <code>read_team_orders</code> OAuth access scope.","tags":["Translation Providers"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]}},"/teams/{team_id}/translation_providers/{provider_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranslationProviders"}}}}},"summary":"Retrieve a provider","operationId":"Retrieve a provider","description":"Retrieves a [Translation provider](#object-providers) object with tiers and available language pairs.\n\nRequires <code>read_team_orders</code> OAuth access scope.","tags":["Translation Providers"],"parameters":[{"name":"team_id","in":"path","description":"A unique team identifier","required":true,"schema":{"type":"number"}},{"name":"provider_id","in":"path","description":"A unique identifier of the provider","required":true,"schema":{"type":"number"}}]}},"/projects/{project_id}/translations":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translations":{"type":"array","items":{"$ref":"#/components/schemas/Translations"}}}}}}}},"summary":"List all translations","operationId":"List all translations","description":"Retrieves a list of project translation items, ungrouped. This endpoint supports cursor pagination for better performance with large datasets. When using cursor pagination, the response will include a <code>nextCursor</code> value in the response headers when more data is available. Continue making requests with the <code>nextCursor</code> value until no <code>nextCursor</code> is returned, indicating all data has been retrieved.\n\nYou may want to request [Keys](#resource-keys) resource in order to get the structured key/translation pairs for all languages.\n\nRequires <code>read_translations</code> OAuth access scope.","tags":["Translations"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_lang_id","in":"query","description":"Return translations only for presented language ID.","required":false,"schema":{"type":"number"}},{"name":"filter_is_reviewed","in":"query","description":"Filter translations which are reviewed. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_unverified","in":"query","description":"Filter translations which are unverified. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_untranslated","in":"query","description":"Filter by untranslated keys. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}},{"name":"filter_qa_issues","in":"query","description":"One or more QA issues to filter by (comma separated). Possible values are <code>spelling\\_and\\_grammar</code>, <code>placeholders</code>, <code>html</code>, <code>url\\_count</code>, <code>url</code>, <code>email\\_count</code>, <code>email</code>, <code>brackets</code>, <code>numbers</code>, <code>leading\\_whitespace</code>, <code>trailing\\_whitespace</code>, <code>double\\_space</code>, <code>special\\_placeholder</code> and <code>unbalanced\\_brackets</code>.","required":false,"schema":{"type":"string"}},{"name":"filter_active_task_id","in":"query","description":"Filter translations which are part of given task ID.","required":false,"schema":{"type":"number"}},{"name":"pagination","in":"query","description":"Type of pagination. Possible values are <code>offset</code> and <code>cursor</code>. The default value is <code>offset</code>. Cursor pagination is performance-optimized and does not count total records or calculate remaining pages. When using cursor pagination, continue making requests until no <code>nextCursor</code> is returned in the response headers.","required":false,"example":"offset","schema":{"type":"string","enum":["offset","cursor"]}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}},{"name":"cursor","in":"query","description":"Return results starting from this cursor. When using cursor pagination, this parameter should contain the <code>nextCursor</code> value from the previous response. Continue pagination until no <code>nextCursor</code> is returned in the response headers.","required":false,"schema":{"type":"string"}}]}},"/projects/{project_id}/translations/{translation_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","translation":{"translation_id":344412,"key_id":553662,"language_iso":"en_US","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"modified_by":420,"modified_by_email":"user@mycompany.com","translation":"Hello, world!","is_unverified":true,"is_reviewed":false,"reviewed_by":0,"words":2,"custom_translation_statuses":{},"task_id":null,"segment_number":1}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translation":{"$ref":"#/components/schemas/Translations"}}}}}}},"summary":"Retrieve a translation","operationId":"Retrieve a translation","description":"Retrieves a [Translation](#object-translations) object.\n\nRequires <code>read_translations</code> OAuth access scope.","tags":["Translations"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"translation_id","in":"path","description":"Unique translation identifier.","required":true,"schema":{"type":"number"}},{"name":"disable_references","in":"query","description":"Whether to disable key references. Possible values are <code>1</code> and <code>0</code>.","required":false,"example":"0","schema":{"type":"number","enum":["0","1"]}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","translation":{"translation_id":344412,"key_id":553662,"language_iso":"en_US","modified_at":"2018-12-31 12:00:00 (Etc/UTC)","modified_at_timestamp":1546257600,"modified_by":420,"modified_by_email":"user@mycompany.com","translation":"Quick brown fox jumps over the lazy dog.","is_unverified":false,"is_reviewed":true,"reviewed_by":1357,"words":8,"custom_translation_statuses":{},"task_id":null,"segment_number":1}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translation":{"$ref":"#/components/schemas/Translations"}}}}}}},"summary":"Update a translation","operationId":"Update a translation","description":"Updates a translation. Alternatively, use the <a href=\"/reference/bulk-update\">Multi-key update</a> endpoint to update translations.\n\nRequires <code>write_translations</code> OAuth access scope.","tags":["Translations"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"translation_id","in":"path","description":"Unique translation identifier.","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"example":{"translation":"Quick brown fox jumps over the lazy dog.","is_unverified":false,"is_reviewed":true},"schema":{"type":"object","required":["translation"],"properties":{"translation":{"type":"string","description":"The actual translation content. Use an JSON object for plural keys."},"is_unverified":{"type":"boolean","description":"Whether the Unverified flag is enabled."},"is_reviewed":{"type":"boolean","description":"Whether the Reviewed flag is enabled."},"custom_translation_status_ids":{"type":"array","items":{"type":"string"},"description":"Custom translation status IDs to assign to translation (existing statuses will be replaced)."}}}}}}}},"/projects/{project_id}/webhooks":{"get":{"responses":{"200":{"description":"OK","headers":{"X-Total-Count":{"schema":{"type":"string"}}},"content":{"application/json":{"example":{"project_id":"20008339586cded200e0d8.29879849","webhooks":[{"webhook_id":"cb755f36c1a5ec7063cf6dedf056eb5a730e033d","url":"https://my.domain.com/webhook","branch":null,"secret":"ccbe0d72a8377b2c91db25d6281192eade03158c","events":["project.imported","project.languages.added","project.language.removed","project.key.added","project.keys.deleted","project.key.modified","project.translation.updated"],"event_lang_map":[{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]},{"webhook_id":"b9069a53700dd7d1fdbaa7dd96c4d6ad25a0e465","url":"https://my.domain.com/webhook","branch":null,"secret":"ccbe0d72a8377b2c91db25d6281192eade03158c","events":["project.translation.proofread"],"event_lang_map":[{"event":"project.translation.proofread","lang_iso_codes":["en","en_GB"]}]}]},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translations":{"type":"array","items":{"$ref":"#/components/schemas/Webhooks"}}}}}}}},"summary":"List all webhooks","operationId":"List all webhooks","description":"Retrieves a list of configured webhooks. Requires *Manage settings* admin right.\n\nRequires <code>read_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Number of items to include (max 5000).","required":false,"example":"100","schema":{"type":"integer"}},{"name":"page","in":"query","description":"Return results starting from this page.","required":false,"example":"1","schema":{"type":"integer"}}]},"post":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","webhook":{"webhook_id":"138c1ffa0ad94848f01f980e7f2f2af19d1bd553","url":"https://my.domain.com/webhook","branch":null,"secret":"ccbe0d72a8377b2c91db25d6281192eade03158c","events":["project.translation.proofread","project.translation.updated"],"event_lang_map":[{"event":"project.translation.proofread","lang_iso_codes":["en","en_GB","rus"]},{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translations":{"$ref":"#/components/schemas/Webhooks"}}}}}}},"summary":"Create a webhook","operationId":"Create a webhook","description":"Creates a webhook in the project. Requires *Manage settings* admin right. See our <a href=\"https://docs.lokalise.com/en/articles/3184756-webhooks\" target=\"_blank\" rel=\"noopener noreferrer\">documentation</a> for available events and payload examples.\n\nRequires <code>write_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"url":"https://my.domain.com/webhook","events":["project.translation.proofread","project.translation.updated"],"event_lang_map":[{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]},"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","description":"Specify the URL to your endpoint."},"branch":{"type":"string","description":"You can limit the usage of the webhook to a specific branch by specifying the name of the branch as a string. If you pass <code>null</code> or skip this attribute, the webhook will be applied to all branches."},"events":{"type":"array","items":{"type":"string","enum":["project.branch.added","project.branch.deleted","project.branch.merged","project.contributor.added","project.contributor.deleted","project.deleted","project.exported","project.imported","project.key.added","project.key.comment.added","project.key.modified","project.keys.deleted","project.language.settings_changed","project.languages.added","project.snapshot","project.task.closed","project.task.created","project.task.deleted","project.task.language.closed","project.translation.proofread","project.translation.updated","team.order.completed","team.order.created","team.order.deleted"]},"description":"List of events to subscribe to. Possible values are <code>project.imported</code>, <code>project.exported</code>, <code>project.deleted</code>, <code>project.snapshot</code>, <code>project.languages.added</code>, <code>project.language.removed </code>, <code>project.language.settings_changed</code>, <code>project.key.added</code>, <code>project.key.modified</code>, <code>project.keys.deleted</code>, <code>project.key.comment.added</code>, <code>project.translation.updated</code>, <code>project.translation.proofread</code>, <code>project.contributor.added</code>, <code>project.contributor.deleted</code>, <code>project.task.created</code>, <code>project.task.closed</code>, <code>project.task.deleted</code>, <code>project.task.language.closed</code>, <code>project.branch.added</code>, <code>project.branch.deleted</code>, <code>project.branch.merged</code>, <code>team.order.created</code>, <code>team.order.completed</code>, <code>team.order.deleted</code>."},"event_lang_map":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string","description":"Event name."},"lang_iso_codes":{"type":"array","items":{"type":"string"},"description":"List of languages iso codes."}}},"description":"Map the event with an array of languages iso codes. Omit this parameter for all languages in the project. Currently only <code>project.translation.updated</code> and <code>project.translation.proofread</code> events can be mapped with languages."}}}}}}}},"/projects/{project_id}/webhooks/{webhook_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"600904245c4ecf0ec4a9d4.28360690","webhook":{"webhook_id":"cb755f36c1a5ec7063cf6dedf056eb5a730e033d","url":"https://my.domain.com/webhook","branch":null,"secret":"ccbe0d72a8377b2c91db25d6281192eade03158c","events":["project.imported","project.languages.added","project.language.removed","project.key.added","project.keys.deleted","project.key.modified","project.translation.updated"],"event_lang_map":[{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translations":{"$ref":"#/components/schemas/Webhooks"}}}}}}},"summary":"Retrieve a webhook","operationId":"Retrieve a webhook","description":"Retrieves a [Webhook](#object-webhooks) object. Requires *Manage settings* admin right.\n\nRequires <code>read_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"webhook_id","in":"path","description":"A unique identifier of the webhook.","required":true,"schema":{"type":"string"}}]},"put":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","webhook":{"webhook_id":"138c1ffa0ad94848f01f980e7f2f2af19d1bd553","url":"https://my.domain.com/webhook","branch":null,"secret":"ccbe0d72a8377b2c91db25d6281192eade03158c","events":["project.translation.proofread","project.translation.updated","project.imported"],"event_lang_map":[{"event":"project.translation.proofread","lang_iso_codes":["en_GB"]},{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]}},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"translations":{"$ref":"#/components/schemas/Webhooks"}}}}}}},"summary":"Update a webhook","operationId":"Update a webhook","description":"Updates a configured webhook in the project. Requires *Manage settings* admin right.\n\nRequires <code>write_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"webhook_id","in":"path","description":"A unique identifier of the webhook.","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"example":{"events":["project.translation.proofread","project.translation.updated","project.imported"],"event_lang_map":[{"event":"project.translation.proofread","lang_iso_codes":["en_GB"]},{"event":"project.translation.updated","lang_iso_codes":["en_GB"]}]},"schema":{"type":"object","properties":{"url":{"type":"string","description":"Update the URL to your endpoint."},"branch":{"type":"string","description":"You can limit the usage of the webhook to a specific branch by specifying the name of the branch as a string. If you pass <code>null</code> or skip this attribute, the webhook will be applied to all branches."},"events":{"type":"array","items":{"type":"string","enum":["project.branch.added","project.branch.deleted","project.branch.merged","project.contributor.added","project.contributor.deleted","project.deleted","project.exported","project.imported","project.key.added","project.key.comment.added","project.key.modified","project.keys.deleted","project.language.settings_changed","project.languages.added","project.snapshot","project.task.closed","project.task.created","project.task.deleted","project.task.language.closed","project.translation.proofread","project.translation.updated","team.order.completed","team.order.created","team.order.deleted"]},"description":"Update the list of subscribed events. Possible values are <code>project.imported</code>, <code>project.exported</code>, <code>project.deleted</code>, <code>project.snapshot</code>, <code>project.languages.added</code>, <code>project.language.removed </code>, <code>project.language.settings_changed</code>, <code>project.key.added</code>, <code>project.key.modified</code>, <code>project.keys.deleted</code>, <code>project.key.comment.added</code>, <code>project.translation.updated</code>, <code>project.translation.proofread</code>, <code>project.contributor.added</code>, <code>project.contributor.deleted</code>, <code>project.task.created</code>, <code>project.task.closed</code>, <code>project.task.deleted</code>, <code>project.task.language.closed</code>, <code>project.branch.added</code>, <code>project.branch.deleted</code>, <code>project.branch.merged</code>, <code>team.order.created</code>, <code>team.order.completed</code>, <code>team.order.deleted</code>."},"event_lang_map":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string","description":"Event name."},"lang_iso_codes":{"type":"array","items":{"type":"string"},"description":"List of languages iso codes."}}},"description":"Map the event with an array of languages iso codes. Omit this parameter for all languages in the project. Currently only <code>project.translation.updated</code> and <code>project.translation.proofread</code> events can be mapped with languages."}}}}}}},"delete":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","webhook_deleted":true},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"webhook_deleted":{"type":"boolean"}}}}}}},"summary":"Delete a webhook","operationId":"Delete a webhook","description":"Deletes a configured webhook in the project. Requires *Manage settings* admin right.\n\nRequires <code>write_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"webhook_id","in":"path","description":"A unique identifier of the webhook.","required":true,"schema":{"type":"string"}}]}},"/projects/{project_id}/webhooks/{webhook_id}/secret/regenerate":{"patch":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"project_id":"3002780358964f9bab5a92.87762498","secret":"ccbe0d72a8377b2c91db25d6281192eade03158c"},"schema":{"type":"object","properties":{"project_id":{"type":"string"},"secret":{"type":"string"}}}}}}},"summary":"Regenerate a webhook secret","operationId":"Regenerate a webhook secret","description":"Regenerate a webhook secret. Requires *Manage settings* admin right.\n\nRequires <code>write_webhooks</code> OAuth access scope.","tags":["Webhooks"],"parameters":[{"name":"project_id","in":"path","description":"A unique project identifier","required":true,"schema":{"type":"string"}},{"name":"webhook_id","in":"path","description":"A unique identifier of the webhook.","required":true,"schema":{"type":"string"}}]}},"/users/{user_id}":{"get":{"responses":{"200":{"description":"OK","headers":{},"content":{"application/json":{"example":{"id":420,"uuid":"01982dac-13dc-7a72-9e42-f43f67c5342d","email":"jdoe@mycompany.com","fullname":"John Doe"},"schema":{"$ref":"#/components/schemas/Users"}}}}},"summary":"Retrieve a basic user data","operationId":"Retrieve a basic user data for logged in user.","description":"Retrieves a [User](#object-users) object.\n\n Not available via OAuth token.\n\n Available via S2S.","tags":["Users"],"parameters":[{"name":"user_id","in":"path","description":"A unique identifier of the user. Can be numerical or uuid","required":true,"schema":{"oneOf":[{"type":"number"},{"type":"string","format":"uuid"}]}}]}}},"components":{"schemas":{"Comments":{"type":"object","properties":{"comment_id":{"type":"number","description":"A unique identifier of the comment."},"key_id":{"type":"number","description":"Identifier of a key, the comment is attached to."},"comment":{"type":"string","description":"The comment message."},"added_by":{"type":"number","description":"Identifier of a user, who has left the comment."},"added_by_email":{"type":"string","description":"E-mail of a user, who has left the comment."},"added_at":{"type":"string","description":"Date and time the comment was added."},"added_at_timestamp":{"type":"number","description":"Unix timestamp the comment was added."}}},"Contributors":{"type":"object","properties":{"user_id":{"type":"number","description":"A unique identifier of the user."},"email":{"type":"string","description":"E-mail associated with this user."},"fullname":{"type":"string","description":"Full name as set by the user."},"created_at":{"type":"string","description":"Date/time at which the user was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the user was created."},"is_admin":{"type":"boolean","description":"Whether the user has Admin access to the project. From the new permission release onwards is deprecated."},"is_reviewer":{"type":"boolean","description":"Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated."},"role_id":{"type":"number","description":"Permission template id attached to the user","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}},"languages":{"type":"array","items":{"type":"object","properties":{"lang_id":{"type":"number","description":"Language ID."},"lang_iso":{"type":"string","description":"Language code."},"lang_name":{"type":"string","description":"Language name."},"is_writable":{"type":"boolean","description":"Whether the user has write access to the language."}}},"description":"List of languages, accessible to the user."},"admin_rights":{"type":"array","items":{},"description":"List of user permissions."}}},"TranslationStatuses":{"type":"object","properties":{"status_id":{"type":"number","description":"A unique custom translation status identifier."},"title":{"type":"string","description":"Status title."},"color":{"type":"string","description":"Hex color of the status."}}},"Files":{"type":"object","properties":{"file_id":{"type":"number","description":"A unique identifier of the file."},"filename":{"type":"string","description":"File name."},"key_count":{"type":"number","description":"Total number of keys, associated with this file."}}},"GlossaryTerms":{"type":"object","properties":{"id":{"type":"integer","description":"A unique identifier of the glossary term."},"term":{"type":"string","description":"The term added to the glossary."},"description":{"type":"string","description":"Explanation of the term."},"caseSensitive":{"type":"boolean","description":"Indicates whether term is case-sensitive."},"translatable":{"type":"boolean","description":"Indicates whether the term should be translatable or not."},"forbidden":{"type":"boolean","description":"If true, the term must not be used in translations."},"translations":{"type":"array","items":{"type":"object","properties":{"langId":{"type":"integer","description":"Language ID."},"langName":{"type":"string","description":"Language name."},"langIso":{"type":"string","description":"Language ISO code."},"translation":{"type":"string","description":"Translation of the term."},"description":{"type":"string","description":"Description of the translation."}}},"description":"List of translations for the term."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for the term."},"projectId":{"type":"string","description":"Project ID for which the term resides."},"createdAt":{"type":"string","description":"Creation date and time of the term."},"updatedAt":{"type":"string","description":"Last updated date and time of the term."}}},"Keys":{"type":"object","properties":{"key_id":{"type":"number","description":"A unique identifier of the key."},"created_at":{"type":"string","description":"Creation date of the key."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the key was created."},"key_name":{"type":"object","properties":{"ios":{"type":"string","description":"\"iOS\" platform key name."},"android":{"type":"string","description":"\"Android\" platform key name."},"web":{"type":"string","description":"\"Web\" platform key name."},"other":{"type":"string","description":"\"Other\" platform key name."}},"description":"An object containing key names for all platforms. You may need to enable \"Per-platform key names\" in project settings in order to alter key names for each platform individually. Note, when creating/updating keys, depending on your project settings (Per-platform key names) you may be required to pass either a string (if the setting is disabled) or an object (if the setting is enabled)."},"filenames":{"type":"object","properties":{"ios":{"type":"string","description":"\"iOS\" platform filename."},"android":{"type":"string","description":"\"Android\" platform filename."},"web":{"type":"string","description":"\"Web\" platform filename."},"other":{"type":"string","description":"\"Other\" platform filename."}},"description":"An object containing key filename attribute for each platform."},"description":{"type":"string","description":"Description of the key."},"platforms":{"type":"array","items":{},"description":"List of platforms, enabled for this key."},"tags":{"type":"array","items":{},"description":"List of tags for this key."},"comments":{"type":"array","items":{"type":"object","properties":{"comment_id":{"type":"number","description":"Unique identifier of the comment."},"comment":{"type":"string","description":"The comment."},"added_by":{"type":"number","description":"Unique identifier of a user, who has left the comment."},"added_by_email":{"type":"string","description":"E-mail of a user, who has left the comment."},"added_at":{"type":"string","description":"Date the comment has been added."},"added_at_timestamp":{"type":"number","description":"Unix timestamp when the comment has been added."}}},"description":"Comments for this key."},"screenshots":{"type":"array","items":{"type":"object","properties":{"screenshot_id":{"type":"number","description":"A unique identifier of the screenshot."},"key_ids":{"type":"array","items":{},"description":"List of key identifiers, the screenshot is attached to."},"url":{"type":"string","description":"Link to the screenshot."},"title":{"type":"string","description":"Screenshot title."},"description":{"type":"string","description":"Description of the screenshot."},"screenshot_tags":{"type":"array","items":{},"description":"List of screenshot tags."},"width":{"type":"number","description":"Width of the screenshot, in pixels."},"height":{"type":"number","description":"Height of the screenshot, in pixels."},"created_at":{"type":"string","description":"Creation date of the screenshot."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the screenshot was created."}}},"description":"Screenshots, attached to this key."},"translations":{"type":"array","items":{"type":"object","properties":{"translation_id":{"type":"number","description":"Unique identifier of translation entry."},"key_id":{"type":"number","description":"A unique identifier of the key."},"language_iso":{"type":"string","description":"Unique code of the language of the translation."},"translation":{"type":"string","description":"The actual translation. Pass as an object, in case it includes plural forms and <code>is_plural</code> is <code>true</code>."},"modified_by":{"type":"number","description":"Identifier of a user, who has updated the translation."},"modified_by_email":{"type":"string","description":"E-mail of a user, who has updated the translation."},"modified_at":{"type":"string","description":"Date of last modification of the translation."},"modified_at_timestamp":{"type":"number","description":"Unix timestamp of last modification of the translation."},"is_reviewed":{"type":"boolean","description":"Whether the translation is marked as Reviewed."},"is_unverified":{"type":"boolean","description":"Whether the translation is marked as Unverified."},"reviewed_by":{"type":"number","description":"Identifier of the user, who has reviewed the translation (if reviewed)."},"words":{"type":"number","description":"Number of words in the translation."},"custom_translation_statuses":{"type":"array","items":{},"description":"Array consisting of <a href=\"#object-translation-statuses\">Custom Translation Status</a> objects."},"task_id":{"type":"number","description":"Identifier of the task, if the key is a part of one, or <code>null</code> if it's not."}}},"description":"Translations for all languages."},"is_plural":{"type":"boolean","description":"Whether this key is plural."},"plural_name":{"type":"string","description":"Optional custom plural name (used in some formats)."},"is_hidden":{"type":"boolean","description":"Whether this key is hidden from non-admins (translators)."},"is_archived":{"type":"boolean","description":"Whether this key is archived."},"context":{"type":"string","description":"Optional context of the key (used with some file formats)."},"base_words":{"type":"number","description":"Number of words in base language."},"char_limit":{"type":"number","description":"Maximum allowed number of characters in translations for this key."},"custom_attributes":{"type":"array","items":{},"description":"JSON containing <a href=\"https://docs.lokalise.com/developer-docs/custom-key-attributes\">custom attributes</a> (if any)."},"modified_at":{"type":"string","description":"Date of the latest key update (including screenshots and comments)."},"modified_at_timestamp":{"type":"number","description":"Unix timestamp of the latest key update (including screenshots and comments)."},"translations_modified_at":{"type":"string","description":"Date of the latest key translation update."},"translations_modified_at_timestamp":{"type":"number","description":"Unix timestamp of the latest key translation update."}}},"Languages":{"type":"object","properties":{"lang_id":{"type":"number","description":"A unique language identifier in the system."},"lang_iso":{"type":"string","description":"Language/locale code."},"lang_name":{"type":"string","description":"Language name."},"is_rtl":{"type":"boolean","description":"Whether the language is Right-To-Left."},"plural_forms":{"type":"array","items":{},"description":"List of supported plural forms."},"cc_iso":{"type":"string","description":"Country code, associated with the language."}}},"Orders":{"type":"object","properties":{"order_id":{"type":"string","description":"A unique order identifier."},"project_id":{"type":"string","description":"Project identifier."},"branch":{"type":"string","description":"Branch name."},"payment_method":{"type":"string","description":"Payment method. Possible values are <code>credit_card</code>, <code>team_credit</code>, <code>none</code>. <code>null</code> will be returned for orders made before the attribute was introduced."},"card_id":{"type":"number","description":"Identifier of the card used for payment."},"status":{"type":"string","description":"Status of the order. Possible values are <code>in progress</code>, <code>completed</code>. <code>processing</code>, <code>draft</code> in case if <code>dry_run</code> = <code>true</code>."},"created_at":{"type":"string","description":"Date and time of the order creation."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the order was created."},"created_by":{"type":"number","description":"Identifier of a user, who has created the order."},"created_by_email":{"type":"string","description":"E-mail of a user, who has created the order."},"source_language_iso":{"type":"string","description":"Source language code of the order."},"target_language_isos":{"type":"array","items":{},"description":"List of target languages."},"keys":{"type":"array","items":{},"description":"List of keys identifiers, included in the order."},"source_words":{"type":"object","properties":{"{key}":{"type":"string","description":"Language iso code."},"{value}":{"type":"number","description":"Translatable word count."}},"description":"Object, where object key is target language iso code and value is the translatable word count."},"provider_slug":{"type":"string","description":"Translation provider slug."},"translation_style":{"type":"string","description":"Style of the translation, applies to <code>gengo</code> provider only."},"translation_tier":{"type":"number","description":"Tier of the translation. Tiers depend on provider."},"translation_tier_name":{"type":"string","description":"Tier name."},"briefing":{"type":"string","description":"Order briefing."},"is_saved_to_translation_memory":{"type":"boolean","description":"Default true, can be set only with <code>google</code> and <code>deepl</code> providers."},"total":{"type":"number","description":"Total cost of the order in major currency units (USD)"}}},"PaymentCards":{"type":"object","properties":{"card_id":{"type":"number","description":"A unique identifier of the card."},"last4":{"type":"string","description":"Last 4 digits of the card."},"brand":{"type":"string","description":"Card brand."},"created_at":{"type":"string","description":"Date/time at which the card was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the card was created."}}},"PermissionTemplate":{"type":"object","properties":{"id":{"type":"integer","description":"Id of permission template"},"role":{"type":"string","description":"Name of a permission template holder"},"permissions":{"type":"array","items":{"type":"string"},"description":"List of permissions in simple list format"},"description":{"type":"string","description":"Description of a permission template"},"tag":{"type":"string","description":"Tag type attached to the role, needed only for display purposes"},"tagColor":{"type":"string","description":"Attached tag colour for displaying in interface"},"tagInfo":{"type":"string","description":"Helper for a tag for displaying in interface"},"doesEnableAllReadOnlyLanguages":{"type":"boolean","description":"Shows if permission template enables all read only languages (calculated based on permissions attached)"}}},"Projects":{"type":"object","properties":{"project_id":{"type":"string","description":"A unique project identifier."},"project_type":{"type":"string","description":"Project type descriptor. Allowed values are <code>localization_files</code> or <code>paged_documents</code>."},"name":{"type":"string","description":"Project name."},"description":{"type":"string","description":"Description of the project."},"created_at":{"type":"string","description":"Date of project creation."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when project was created."},"created_by":{"type":"number","description":"An identifier of a user who has created the project."},"created_by_email":{"type":"string","description":"An e-mail of a user who has created the project."},"team_id":{"type":"number","description":"A unique identifier of the team, the project belongs to."},"base_language_id":{"type":"number","description":"A unique identifier of the project default language."},"base_language_iso":{"type":"string","description":"A language/locale code of the project default language."},"settings":{"type":"object","properties":{"per_platform_key_names":{"type":"boolean","description":"If enabled project has different key names for different platforms."},"reviewing":{"type":"boolean","description":"If enabled contributors has reviewer access for project."},"auto_toggle_unverified":{"type":"boolean","description":"If enabled Lokalise will automatically mark translations Unverified in case translation of base language was changed."},"offline_translation":{"type":"boolean","description":"If enabled translators are able to download and upload translations as XLIFF files from the Editor."},"key_editing":{"type":"boolean","description":"If enabled keys are allowed to be modified."},"inline_machine_translations":{"type":"boolean","description":"If enabled inline machine translations are enabled to all project users."},"branching":{"type":"boolean","description":"If enabled then branching will be available."},"segmentation":{"type":"boolean","description":"If enabled then segmentation will be available."},"custom_translation_statuses":{"type":"boolean","description":"If enabled then custom translation statuses will be available."},"custom_translation_statuses_allow_multiple":{"type":"boolean","description":"If enabled then multiple custom translation statuses will be allowed."},"contributor_preview_download_enabled":{"type":"boolean","description":"If enabled then translators will be allowed to preview content by downloading target files from the Editor"}},"description":"An object containing project settings."},"statistics":{"type":"object","properties":{"progress_total":{"type":"number","description":"Overall percent of project progress."},"keys_total":{"type":"number","description":"Count of keys in the project."},"team":{"type":"number","description":"Team members count in the project."},"base_words":{"type":"number","description":"Count of words in a base language of the project."},"qa_issues_total":{"type":"number","description":"Overall count of QA issues in the project."},"qa_issues":{"type":"object","properties":{"not_reviewed":{"type":"number","description":"Count of not reviewed translations."},"unverified":{"type":"number","description":"Count of unverified translations."},"spelling_grammar":{"type":"number","description":"Count of translations with spelling and/or grammar errors."},"inconsistent_placeholders":{"type":"number","description":"Count of translations with inconsistent placeholders (source vs target)."},"inconsistent_html":{"type":"number","description":"Count of translations with inconsistent HTML tags (source vs target)."},"different_number_of_urls":{"type":"number","description":"Count of translations with different number of URLs (source vs target)."},"different_urls":{"type":"number","description":"Count of translations with different URLs (source vs target)."},"leading_whitespace":{"type":"number","description":"Count of translations with leading whitespace."},"trailing_whitespace":{"type":"number","description":"Count of translations with trailing whitespace."},"different_number_of_email_address":{"type":"number","description":"Count of translations with different number of email address (source vs target)."},"different_email_address":{"type":"number","description":"Count of translations with different email address (source vs target)."},"different_brackets":{"type":"number","description":"Count of translations with different brackets (source vs target)."},"different_numbers":{"type":"number","description":"Count of translations with different numbers (source vs target)."},"double_space":{"type":"number","description":"Count of translations with double spaces (target)."},"special_placeholder":{"type":"number","description":"Count of invalid use of [VOID], [TRUE], [FALSE] placeholders (target)."},"unbalanced_brackets":{"type":"number","description":"Count of unbalanced brackets (target)."}},"description":"An object containing count for each QA issue type."},"languages":{"type":"array","items":{"type":"object","properties":{"language_id":{"type":"number","description":"A unique language identifier in the system."},"language_iso":{"type":"string","description":"Language/locale code."},"project_language_id":{"type":"string","description":"Unique language identifier for connecting language and project."},"project_language_uuid":{"type":"string","description":"Unique language identifier (UUID) for connecting language and project."},"progress":{"type":"number","description":"Translated keys percent."},"words_to_do":{"type":"number","description":"Count of words remaining to translate from projects base language."}}},"description":"An array of project languages with progress percent."}},"description":"An object containing project statistics, QA issues and project languages progress."}}},"QueuedProcesses":{"type":"object","properties":{"process_id":{"type":"string","description":"A unique process identifier."},"type":{"type":"string","description":"The type of the process. Can be <code>file-import</code>, <code>sketch-import</code> or <code>bulk-apply-tm</code>."},"status":{"type":"string","description":"Current status of the process. Can be <code>queued</code>, <code>pre_processing</code>, <code>running</code>, <code>post_processing</code>, <code>cancelled</code>, <code>finished</code> or <code>failed</code>."},"message":{"type":"string","description":"Can contain a message related to the current process status (such as an error message)."},"created_by":{"type":"number","description":"ID of a user who initiated the process."},"created_by_email":{"type":"string","description":"email of a user who initiated the process."},"created_at":{"type":"string","description":"Date of when the process was created in the queue."},"created_at_timestamp":{"type":"number","description":"Unix timestamp of when the process was created in the queue."}}},"Screenshots":{"type":"object","properties":{"screenshot_id":{"type":"number","description":"A unique identifier of the screenshot."},"key_ids":{"type":"array","items":{},"description":"List of key identifiers, the screenshot is attached to."},"keys":{"type":"array","items":{"type":"object","properties":{"key_id":{"type":"number","description":"A unique identifier of the key."},"coordinates":{"type":"object","properties":{"left":{"type":"number","description":"<code>x</code> position of the left-top corner"},"top":{"type":"number","description":"<code>y</code> position of the left-top corner"},"width":{"type":"number","description":"width (pixels) of the area"},"height":{"type":"number","description":"height (pixels) of the area"}},"description":"Key coordinates of the key area"}}},"description":"List of key keys with coordinates."},"url":{"type":"string","description":"Link to the screenshot."},"title":{"type":"string","description":"Screenshot title."},"description":{"type":"string","description":"Description of the screenshot."},"screenshot_tags":{"type":"array","items":{},"description":"List of screenshot tags."},"width":{"type":"number","description":"Width of the screenshot, in pixels."},"height":{"type":"number","description":"Height of the screenshot, in pixels."},"created_at":{"type":"string","description":"Creation date of the screenshot."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the screenshot was created."}}},"Segments":{"type":"object","properties":{"segment_number":{"type":"number","description":"Segment number."},"language_iso":{"type":"string","description":"Language code."},"modified_at":{"type":"string","description":"Date and time of last translation modification."},"modified_at_timestamp":{"type":"number","description":"Unix timestamp of last translation modification."},"modified_by":{"type":"number","description":"Identifier of the user, who made last modification."},"modified_by_email":{"type":"string","description":"E-mail of the user, who made last modification."},"value":{"type":"string","description":"The actual segment content. Pass as an object, in case it includes plural forms and <code>is_plural</code> is <code>true</code>."},"is_fuzzy":{"type":"boolean","description":"Whether the Fuzzy flag is enabled. (Note: Fuzzy is called Unverified in the editor now)."},"is_reviewed":{"type":"boolean","description":"Whether the Reviewed flag is enabled."},"reviewed_by":{"type":"number","description":"Identifier of the user, who has reviewed the translation (if reviewed)."},"words":{"type":"number","description":"Number of words in the translation."},"custom_translation_statuses":{"type":"array","items":{},"description":"Array consisting of <a href=\"#object-translation-statuses\">Custom Translation Status</a> objects."}}},"Snapshots":{"type":"object","properties":{"snapshot_id":{"type":"number","description":"A unique identifier of the snapshot."},"title":{"type":"string","description":"Snapshot title."},"created_at":{"type":"string","description":"Date and time of the snapshot creation."},"created_at_timestamp":{"type":"string","description":"Unix timestamp when the snapshot was created."},"created_by":{"type":"number","description":"Identifier of a user, who has created the snapshot."},"created_by_email":{"type":"string","description":"E-mail of a user, who has created the snapshot."}}},"Tasks":{"type":"object","properties":{"task_id":{"type":"number","description":"A unique task identifier."},"title":{"type":"string","description":"Task title."},"description":{"type":"string","description":"Short description of the task."},"status":{"type":"string","description":"Status of the task. Allowed values are <code>completed</code>, <code>in_progress</code>, <code>created</code>, <code>queued</code>."},"progress":{"type":"number","description":"Task progress in percents (0% - 100%)."},"due_date":{"type":"string","description":"Due date."},"due_date_timestamp":{"type":"number","description":"Unix timestamp of the Due date."},"keys_count":{"type":"number","description":"Total number of keys in the task."},"words_count":{"type":"number","description":"Total number of source words in the task."},"created_at":{"type":"string","description":"Date and time of the task creation."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the task was created."},"created_by":{"type":"number","description":"Identifier of a user, who has created the task."},"created_by_email":{"type":"string","description":"E-mail of a user, who has created the task."},"can_be_parent":{"type":"boolean","description":"Can task be assigned as a parent task."},"task_type":{"type":"string","default":"translation","enum":["translation","automatic_translation","lqa_by_ai","review"],"description":"<code>translation</code>, <code>automatic_translation</code>, <code>lqa_by_ai</code> or <code>review</code>."},"parent_task_id":{"type":"number","description":"ID of the parent task."},"closing_tags":{"type":"array","items":{},"description":"Tags that will be added to affected keys when task is closed."},"do_lock_translations":{"type":"boolean","description":"If set to true, will lock translations for non-assigned project members."},"languages":{"type":"array","items":{"type":"object","properties":{"language_iso":{"type":"string","description":"Language code."},"language_id":{"type":"number","description":"A unique language identifier in the system."},"language_name":{"type":"string","description":"Language name."},"users":{"type":"array","items":{},"description":"List of users, assigned to work on the language."},"groups":{"type":"object","properties":{"group":{"type":"object","properties":{"id":{"type":"number","description":"A unique identifier of the user group."},"name":{"type":"string","description":"Name of the group."}}}},"description":"List of groups, assigned to work on the language."},"keys":{"type":"array","items":{},"description":"List of keys identifiers, included in task for this language."},"status":{"type":"string","description":"Status of the language in the task. Allowed values are <code>completed</code>, <code>in progress</code>, <code>created</code>."},"progress":{"type":"number","description":"Language progress in percents (0% - 100%)."},"initial_tm_leverage":{"type":"object","deprecated":true,"description":"Deprecated. We return data for compatibility, but please, rely on \"tm_leverage\" instead.","properties":{"0%+":{"type":"number","description":"Number of words with TM match from 0% to 60%."},"60%+":{"type":"number","description":"Number of words with TM match from 60% to 75%."},"75%+":{"type":"number","description":"Number of words with TM match from 75% to 95%."},"95%+":{"type":"number","description":"Number of words with TM match from 95% to 100%."},"100%":{"type":"number","description":"Number of words with TM 100% match."}}},"tm_leverage":{"type":"object","description":"Translation Memory leverage calculated for a task. It indicates how many words translators can fetch from the memory instead of translating everything from scratch. For large tasks it may take time to calculate TM leverage after the task creation. If the \"status\" is \"pending\", you will see null value and need to retrieve the data again (with a small delay).","example":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"properties":{"status":{"type":"string","enum":["pending","completed"],"description":"Status of the translation memory leverage."},"value":{"type":"object","nullable":true,"properties":{"0%+":{"type":"number","description":"Number of words with TM match from 0% to 50%."},"50%+":{"type":"number","description":"Number of words with TM match from 50% to 75%."},"75%+":{"type":"number","description":"Number of words with TM match from 75% to 85%."},"85%+":{"type":"number","description":"Number of words with TM match from 85% to 95%."},"95%+":{"type":"number","description":"Number of words with TM match from 95% to 100%."},"100%":{"type":"number","description":"Number of words with TM 100% match."}}}}},"keys_count":{"type":"number","description":"Number of keys for the language."},"words_count":{"type":"number","description":"Number of source words for the language."},"done_words_count":{"type":"number","description":"Number of translated words for the language."},"completed_at":{"type":"string","description":"Date and time of the language completion."},"completed_at_timestamp":{"type":"number","description":"Unix timestamp when the language was completed."},"completed_by":{"type":"number","description":"Identifier of a user, who has completed the language."},"completed_by_email":{"type":"string","description":"E-mail of a user, who has completed the language."}}},"description":"List of languages in the task."},"source_language_iso":{"type":"string","description":"Source language code of the task."},"auto_close_languages":{"type":"boolean","description":"Whether languages should be closed automatically upon completion of the last item."},"auto_close_task":{"type":"boolean","description":"Whether the task should be automatically closed upon all language completion."},"auto_close_items":{"type":"boolean","description":"Whether the <code>translation</code> task items should be automatically marked as completed on edit."},"completed_at":{"type":"string","description":"Date and time of the task completion."},"completed_at_timestamp":{"type":"number","description":"Unix timestamp when the task was completed."},"completed_by":{"type":"number","description":"Identifier of a user, who has completed the task."},"completed_by_email":{"type":"string","description":"E-mail of a user, who has completed the task."},"custom_translation_status_ids":{"type":"array","items":{},"description":"IDs of custom translation statuses that will be applied to task items after item is completed."}}},"DetailedTasks":{"type":"object","properties":{"task_id":{"type":"number","description":"A unique task identifier."},"title":{"type":"string","description":"Task title."},"description":{"type":"string","description":"Short description of the task."},"status":{"type":"string","description":"Status of the task. Allowed values are <code>completed</code>, <code>in_progress</code>, <code>created</code>, <code>queued</code>."},"progress":{"type":"number","description":"Task progress in percents (0% - 100%)."},"due_date":{"type":"string","description":"Due date."},"due_date_timestamp":{"type":"number","description":"Unix timestamp of the Due date."},"keys_count":{"type":"number","description":"Total number of keys in the task."},"words_count":{"type":"number","description":"Total number of source words in the task."},"created_at":{"type":"string","description":"Date and time of the task creation."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the task was created."},"created_by":{"type":"number","description":"Identifier of a user, who has created the task."},"created_by_email":{"type":"string","description":"E-mail of a user, who has created the task."},"created_by_fullname":{"type":"string","description":"A fullname of a user, who has created the task."},"can_be_parent":{"type":"boolean","description":"Can task be assigned as a parent task."},"task_type":{"type":"string","default":"translation","enum":["translation","automatic_translation","lqa_by_ai","review"],"description":"<code>translation</code>, <code>automatic_translation</code>, <code>lqa_by_ai</code> or <code>review</code>."},"parent_task_id":{"type":"number","description":"ID of the parent task."},"closing_tags":{"type":"array","items":{},"description":"Tags that will be added to affected keys when task is closed."},"do_lock_translations":{"type":"boolean","description":"If set to true, will lock translations for non-assigned project members."},"languages":{"type":"array","items":{"type":"object","properties":{"language_iso":{"type":"string","description":"Language code."},"language_id":{"type":"number","description":"A unique language identifier in the system."},"language_name":{"type":"string","description":"Language name."},"users":{"type":"array","items":{},"description":"List of users, assigned to work on the language."},"groups":{"type":"object","properties":{"group":{"type":"object","properties":{"id":{"type":"number","description":"A unique identifier of the user group."},"name":{"type":"string","description":"Name of the group."}}}},"description":"List of groups, assigned to work on the language."},"keys":{"type":"array","items":{},"description":"List of keys identifiers, included in task for this language."},"status":{"type":"string","description":"Status of the language in the task. Allowed values are <code>completed</code>, <code>in progress</code>, <code>created</code>."},"progress":{"type":"number","description":"Language progress in percents (0% - 100%)."},"initial_tm_leverage":{"type":"object","deprecated":true,"description":"Deprecated. We return data for compatibility, but please, rely on \"tm_leverage\" instead.","properties":{"0%+":{"type":"number","description":"Number of words with TM match from 0% to 60%."},"60%+":{"type":"number","description":"Number of words with TM match from 60% to 75%."},"75%+":{"type":"number","description":"Number of words with TM match from 75% to 95%."},"95%+":{"type":"number","description":"Number of words with TM match from 95% to 100%."},"100%":{"type":"number","description":"Number of words with TM 100% match."}}},"tm_leverage":{"type":"object","description":"Translation Memory leverage calculated for a task. It indicates how many words translators can fetch from the memory instead of translating everything from scratch. For large tasks it may take time to calculate TM leverage after the task creation. If the \"status\" is \"pending\", you will see null value and need to retrieve the data again (with a small delay).","example":{"status":"completed","value":{"0%+":30,"50%+":0,"75%+":0,"85%+":0,"95%+":0,"100%":0}},"properties":{"status":{"type":"string","enum":["pending","completed"],"description":"Status of the translation memory leverage."},"value":{"type":"object","nullable":true,"properties":{"0%+":{"type":"number","description":"Number of words with TM match from 0% to 50%."},"50%+":{"type":"number","description":"Number of words with TM match from 50% to 75%."},"75%+":{"type":"number","description":"Number of words with TM match from 75% to 85%."},"85%+":{"type":"number","description":"Number of words with TM match from 85% to 95%."},"95%+":{"type":"number","description":"Number of words with TM match from 95% to 100%."},"100%":{"type":"number","description":"Number of words with TM 100% match."}}}}},"keys_count":{"type":"number","description":"Number of keys for the language."},"words_count":{"type":"number","description":"Number of source words for the language."},"done_words_count":{"type":"number","description":"Number of translated words for the language."},"completed_at":{"type":"string","description":"Date and time of the language completion."},"completed_at_timestamp":{"type":"number","description":"Unix timestamp when the language was completed."},"completed_by":{"type":"number","description":"Identifier of a user, who has completed the language."},"completed_by_email":{"type":"string","description":"E-mail of a user, who has completed the language."},"completed_by_fullname":{"type":"string","description":"Fullname of a user, who has completed the language."}}},"description":"List of languages in the task."},"source_language_iso":{"type":"string","description":"Source language code of the task."},"auto_close_languages":{"type":"boolean","description":"Whether languages should be closed automatically upon completion of the last item."},"auto_close_task":{"type":"boolean","description":"Whether the task should be automatically closed upon all language completion."},"auto_close_items":{"type":"boolean","description":"Whether the <code>translation</code> task items should be automatically marked as completed on edit."},"completed_at":{"type":"string","description":"Date and time of the task completion."},"completed_at_timestamp":{"type":"number","description":"Unix timestamp when the task was completed."},"completed_by":{"type":"number","description":"Identifier of a user, who has completed the task."},"completed_by_email":{"type":"string","description":"E-mail of a user, who has completed the task."},"completed_by_fullname":{"type":"string","description":"Fullname of a user, who has completed the task."},"custom_translation_status_ids":{"type":"array","items":{},"description":"IDs of custom translation statuses that will be applied to task items after item is completed."}}},"TeamUserGroups":{"type":"object","properties":{"group_id":{"type":"number","description":"A unique identifier of the group."},"name":{"type":"string","description":"Name of the group."},"permissions":{"type":"object","properties":{"is_admin":{"type":"boolean","description":"Whether the user has Admin access to the project. From the new permission release onwards is deprecated."},"is_reviewer":{"type":"boolean","description":"Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated."},"admin_rights":{"type":"array","items":{},"description":"List of group administrative permissions."},"languages":{"type":"array","items":{"type":"object","properties":{"lang_id":{"type":"number","description":"Language ID."},"lang_iso":{"type":"string","description":"Language code."},"lang_name":{"type":"string","description":"Language name."},"is_writable":{"type":"boolean","description":"Whether the user has write access to the language."}}},"description":"List of languages, accessible to the user."}},"description":"List of group permissions."},"created_at":{"type":"string","description":"Date/time at which the group was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the group was created."},"team_id":{"type":"number","description":"Team identifier."},"projects":{"type":"array","items":{},"description":"List of projects, group is added to."},"members":{"type":"array","items":{},"description":"List of group members (user IDs)."},"role_id":{"type":"number","description":"Permission template id attached to the group.","enum":[1,2,3,4,5],"x-enumDescriptions":{"1":"Manager (manage project settings, contributors and tasks)","2":"Developer (create keys, upload and download content)","3":"Content creator (create, translate and edit keys, manage screenshots)","4":"Reviewer (translate keys, control key statuses)","5":"Translator (translate keys)"}}}},"TeamUserBillingDetails":{"type":"object","required":["billing_email","country_code","zip"],"properties":{"billing_email":{"type":"string","description":"Email for invoices and translation orders"},"country_code":{"type":"string","description":"Country code as described in ISO 3166 (alpha-2 code)"},"zip":{"type":"string","description":"Valid postal code for specified country"},"state_code":{"type":"string","description":"<code>Required</code> if country code is <code>US</code>"},"address1":{"type":"string","description":"Address line 1"},"address2":{"type":"string","description":"Address line 2"},"city":{"type":"string","description":"City"},"phone":{"type":"string","description":"Phone"},"company":{"type":"string","description":"Company name"},"vatnumber":{"type":"string","description":"VAT number"}}},"Users":{"type":"object","properties":{"id":{"type":"number","description":"A unique identifier of the user."},"uuid":{"type":"string","format":"uuid","description":"A unique identifier of the user as UUID."},"email":{"type":"string","description":"E-mail of the user."},"fullname":{"type":"string","description":"User name and last name."}}},"TeamUsers":{"type":"object","properties":{"user_id":{"type":"number","description":"A unique identifier of the user."},"email":{"type":"string","description":"E-mail of the user."},"fullname":{"type":"string","description":"User name and last name."},"created_at":{"type":"string","description":"Date/time at which the user was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the user was created."},"role":{"type":"string","description":"Role of the user. Available roles are <code>owner</code>, <code>admin</code>, <code>member</code>, <code>biller</code>."}}},"Teams":{"type":"object","properties":{"team_id":{"type":"number","description":"A unique team identifier."},"name":{"type":"string","description":"Team name."},"created_at":{"type":"string","description":"Date and time when team was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the team was created."},"plan":{"type":"string","description":"Current subscription plan of the team."},"logo_url":{"type":"string","description":"Logo url of a team."},"role":{"type":"string","description":"Role in a team for a requesting user."},"quota_usage":{"type":"object","properties":{"users":{"type":"number","description":"Number of users in the team."},"keys":{"type":"number","description":"Number of keys used across all team projects."},"projects":{"type":"number","description":"Number of projects in the team."},"mau":{"deprecated":true,"type":"number","description":"Number of monthly active users (for Lokalise SDK)."},"trafficBytes":{"type":"number","description":"Number of bytes used in Lokalise OTA"},"ai_words":{"type":"number","description":"Number of Lokalise AI words consumed by the team."}},"description":"Current quota usage."},"quota_allowed":{"type":"object","properties":{"users":{"type":"number","description":"Total number of users allocated to the team."},"keys":{"type":"number","description":"Total number of keys allocated across all team projects."},"projects":{"type":"number","description":"Total number of projects allocated to the team."},"mau":{"deprecated":true,"type":"number","description":"Total number of monthly active users allocated to the team (for Lokalise SDK)."},"trafficBytes":{"type":"number","description":"Number of bytes allowed in Lokalise OTA"},"ai_words":{"type":"number","description":"Total number of Lokalise AI words allocated to the team."}},"description":"Quotas allocated to the team."}}},"TeamDetails":{"type":"object","properties":{"team_id":{"type":"number","description":"A unique team identifier."},"name":{"type":"string","description":"Team name."},"created_at":{"type":"string","description":"Date and time when team was created."},"created_at_timestamp":{"type":"number","description":"Unix timestamp when the team was created."},"plan":{"type":"string","description":"Current subscription plan of the team."},"logo_url":{"type":"string","description":"Logo url of a team."},"role":{"type":"string","description":"Role in a team for a requesting user."},"quota_usage":{"type":"object","properties":{"users":{"type":"number","description":"Number of users in the team."},"keys":{"type":"number","description":"Number of keys used across all team projects."},"projects":{"type":"number","description":"Number of projects in the team."},"mau":{"deprecated":true,"type":"number","description":"Number of monthly active users (for Lokalise SDK)."},"trafficBytes":{"type":"number","description":"Number of bytes used in Lokalise OTA"},"ai_words":{"type":"number","description":"Number of Lokalise AI words consumed by the team."}},"description":"Current quota usage."},"quota_allowed":{"type":"object","properties":{"users":{"type":"number","description":"Total number of users allocated to the team."},"keys":{"type":"number","description":"Total number of keys allocated across all team projects."},"projects":{"type":"number","description":"Total number of projects allocated to the team."},"mau":{"deprecated":true,"type":"number","description":"Total number of monthly active users allocated to the team (for Lokalise SDK)."},"trafficBytes":{"type":"number","description":"Number of bytes allowed in Lokalise OTA"},"ai_words":{"type":"number","description":"Total number of Lokalise AI words allocated to the team."}},"description":"Quotas allocated to the team."},"is_team_suspended":{"type":"boolean","description":"If team is suspended"},"is_end_of_trial_active":{"type":"boolean","description":"Shows if end of trial period happened already"},"trial_days_left":{"type":"number","description":"Shows days of trial left"}}},"TranslationProviders":{"type":"object","properties":{"provider_id":{"type":"number","description":"A unique identifier of the provider."},"name":{"type":"number","description":"Name of the provider."},"slug":{"type":"string","description":"Slug of the provider."},"price_pair_min":{"type":"number","description":"Minimum total price per language pair. It's \"0.00\" if there is no minimum requirement."},"website_url":{"type":"string","description":"Provider website."},"description":{"type":"string","description":"Provider description."},"tiers":{"type":"object","properties":{"tier_id":{"type":"number","description":"An identifier of the tier."},"name":{"type":"string","description":"Name of the tier."}},"description":"Available translation tiers."},"pairs":{"type":"object","properties":{"tier_id":{"type":"number","description":"Translation tier."},"from_lang_iso":{"type":"string","description":"Source language identifier."},"from_lang_name":{"type":"string","description":"Source language name."},"to_lang_iso":{"type":"string","description":"Target language identifier."},"to_lang_name":{"type":"string","description":"Target language name."},"price_per_word":{"type":"number","description":"Price per word in USD."}},"description":"List of language pairs and prices."}}},"Translations":{"type":"object","properties":{"translation_id":{"type":"number","description":"Unique translation identifier."},"key_id":{"type":"number","description":"Identifier of the key of the translation."},"language_iso":{"type":"string","description":"Language code."},"modified_at":{"type":"string","description":"Date and time of last translation modification."},"modified_at_timestamp":{"type":"number","description":"Unix timestamp of last translation modification."},"modified_by":{"type":"number","description":"Identifier of the user, who made last modification."},"modified_by_email":{"type":"string","description":"E-mail of the user, who made last modification."},"translation":{"type":"string","description":"The actual translation content. Pass as an object, in case it includes plural forms and <code>is_plural</code> is <code>true</code>."},"is_unverified":{"type":"boolean","description":"Whether the Unverified flag is enabled."},"is_reviewed":{"type":"boolean","description":"Whether the Reviewed flag is enabled."},"reviewed_by":{"type":"number","description":"Identifier of the user, who has reviewed the translation (if reviewed)."},"words":{"type":"number","description":"Number of words in the translation."},"custom_translation_statuses":{"type":"array","items":{},"description":"Array consisting of <a href=\"#object-translation-statuses\">Custom Translation Status</a> objects."},"task_id":{"type":"number","description":"Identifier of the task, if the key is a part of one, or <code>null</code> if it's not."},"segment_number":{"type":"number","description":"If segmentation is used then this is a segment number. If not then it defaults to 1."}}},"Webhooks":{"type":"object","properties":{"webhook_id":{"type":"string","description":"A unique identifier of the webhook."},"url":{"type":"string","description":"Specified URL."},"branch":{"type":"string","description":"If webhook is limited to single branch."},"secret":{"type":"string","description":"<code>X-Secret</code> header sent with webhook requests."},"events":{"type":"array","items":{},"description":"List of events webhook is subscribed to. See our <a href=\"https://docs.lokalise.com/en/articles/3184756-webhooks\" target=\"_blank\" rel=\"noopener noreferrer\">documentation</a> for available events and payload examples."},"event_lang_map":{"type":"array","items":{"type":"object","properties":{"event":{"type":"string","description":"Event name."},"lang_iso_codes":{"type":"array","items":{},"description":"List of languages iso codes."}}},"description":"List of maps with languages assigned to the events."}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Token"}}},"security":[{"ApiKeyAuth":[]}],"tags":[]}