Sitelet https://crowdin.github.io/crowdin-api-client-python/api_resources/index.html

Module crowdin_api.api_resources

Sub-modules

crowdin_api.api_resources.abstract
crowdin_api.api_resources.advisors
crowdin_api.api_resources.ai
crowdin_api.api_resources.application
crowdin_api.api_resources.branches
crowdin_api.api_resources.bundles
crowdin_api.api_resources.clients
crowdin_api.api_resources.custom_placeholders
crowdin_api.api_resources.custom_spellcheckers
crowdin_api.api_resources.dictionaries
crowdin_api.api_resources.distributions
crowdin_api.api_resources.enums
crowdin_api.api_resources.external_qa_checks
crowdin_api.api_resources.fields
crowdin_api.api_resources.glossaries
crowdin_api.api_resources.groups
crowdin_api.api_resources.labels
crowdin_api.api_resources.languages
crowdin_api.api_resources.machine_translation_engines
crowdin_api.api_resources.notifications
crowdin_api.api_resources.organization
crowdin_api.api_resources.project_placeholders
crowdin_api.api_resources.projects
crowdin_api.api_resources.reports
crowdin_api.api_resources.screenshots
crowdin_api.api_resources.security_logs
crowdin_api.api_resources.source_files
crowdin_api.api_resources.source_strings
crowdin_api.api_resources.storages
crowdin_api.api_resources.string_comments
crowdin_api.api_resources.string_corrections
crowdin_api.api_resources.string_translations
crowdin_api.api_resources.style_guides
crowdin_api.api_resources.system_placeholders
crowdin_api.api_resources.tasks
crowdin_api.api_resources.teams
crowdin_api.api_resources.translation_memory
crowdin_api.api_resources.translation_status
crowdin_api.api_resources.translations
crowdin_api.api_resources.users
crowdin_api.api_resources.vendors
crowdin_api.api_resources.webhooks
crowdin_api.api_resources.workflows

Classes

class AIResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for AI.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI

Ancestors

Methods

def add_ai_custom_placeholder(self, user_id: int, body: AddAiCustomPlaceholderRequest)

Add AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use add_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.post

def add_ai_prompt(self, userId: int, request_data: AddAIPromptRequestScheme)
def add_ai_provider(self, userId: int, request_data: AddAIProviderReqeustScheme)
def add_ai_snippet(self, user_id: int, request_data: AddAiSnippetRequest)
def cancel_ai_file_translation(self, user_id: int, job_identifier: str)
def cancel_ai_prompt_completion(self, user_id: int, ai_prompt_id: int, completion_id: str)
def check_ai_report_generation_status(self, user_id: int, ai_report_id: str)
def check_ai_request_logs_export_status(self, user_id: int, export_id: str)

Check AI Request Logs Export Status

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.exports.get

def clone_ai_prompt(self, user_id: int, ai_prompt_id: int, name: Optional[str] = None)
def create_ai_file_translation(self, user_id: int, request_data: AiFileTranslationRequest)
def create_ai_prompt_fine_tuning_job(self, user_id: int, ai_prompt_id: int, request_data: CreateAIPromptFineTuningJobRequest)
def create_ai_provider_gateway(self, user_id: int, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def create_ai_proxy_chat_completion(self, userId: int, aiProviderId: int, request_data: Union[GoogleGeminiChatProxy, OtherChatProxy])

Create AI Proxy Chat Completion

This API method serves as an intermediary, forwarding your requests directly to the selected provider. Please refer to the documentation for the specific provider you use to determine the required payload format.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.users.ai.providers.chat.completions.post

def delete_ai_custom_placeholder(self, user_id: int, ai_custom_placeholder_id: int)

Delete AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use delete_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.delete

def delete_ai_prompt(self, userId: int, aiPromptId: int)
def delete_ai_provider(self, userId: int, aiProviderId: int)
def delete_ai_provider_gateway(self, user_id: int, ai_provider_id: int, path: str)
def delete_ai_snippet(self, user_id: int, ai_snippet_id: int)
def download_ai_file_translation(self, user_id: int, job_identifier: str)
def download_ai_file_translation_strings(self, user_id: int, job_identifier: str)
def download_ai_prompt_completion(self, user_id: int, ai_prompt_id: int, completion_id: str)
def download_ai_prompt_fine_tuning_dataset(self, user_id: int, ai_prompt_id: int, job_identifier: str)
def download_ai_report(self, user_id: int, ai_report_id: str)
def download_ai_request_logs_export(self, user_id: int, export_id: str)
def edit_ai_custom_placeholder(self, user_id: int, ai_custom_placeholder_id: int, patches: Iterable[EditAiCustomPlaceholderPatch])

Edit AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use edit_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.patch

def edit_ai_prompt(self, userId: int, aiPromptId: int, request_data: Iterable[EditAIPromptScheme])
def edit_ai_provider(self, userId: int, aiProviderId: int, request_data: EditAIProviderRequestScheme)
def edit_ai_provider_gateway(self, user_id: int, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def edit_ai_settings(self, user_id: int, patches: Iterable[EditAiSettingsPatch])
def edit_ai_snippet(self, user_id: int, ai_snippet_id: int, patches: Iterable[EditAiSnippetPatch])
def export_ai_request_logs(self, user_id: int, export_format: Optional[AiRequestLogExportFormat] = None, request_id: Optional[str] = None, project_id: Optional[int] = None, request_user_id: Optional[int] = None, ai_provider_id: Optional[int] = None, model: Optional[str] = None, source_action: Optional[AiRequestLogSourceAction] = None, prompt_action: Optional[str] = None, statuses: Optional[Iterable[AiRequestLogStatus]] = None, system_credentials: Optional[bool] = None, is_auto_triggered: Optional[bool] = None, token_name: Optional[str] = None, oauth_client_id: Optional[str] = None, created_after: Optional[datetime.datetime] = None, created_before: Optional[datetime.datetime] = None)

Export AI Request Logs

Starts an asynchronous export of the AI request logs matching the filters. Poll check_ai_request_logs_export_status until the status is finished, then call download_ai_request_logs_export.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.ai.requestLogs.exports.post

def generate_ai_prompt_completion(self, user_id: int, ai_prompt_id: int, request: GenerateAiPromptCompletionRequest)
def generate_ai_prompt_fine_tuning_dataset(self, user_id: int, ai_prompt_id: int, request_data: GenerateAIPromptFineTuningDatasetRequest)
def generate_ai_report(self, user_id: int, request: GenerateAiReportRequest)
def get_ai_custom_placeholder(self, user_id: int, ai_custom_placeholder_id: int)

Get AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use get_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.get

def get_ai_custom_placeholders_path(self, user_id: int, custom_placeholder_id: Optional[int] = None)
def get_ai_file_translation_status(self, user_id: int, job_identifier: str)
def get_ai_file_translations_path(self, user_id: int, job_identifier: Optional[str] = None)
def get_ai_path(self, userId: int, aiPromptId: Optional[int] = None)
def get_ai_prompt(self, userId: int, aiPromptId: int)
def get_ai_prompt_completion_status(self, user_id: int, ai_prompt_id: int, completion_id: str)
def get_ai_prompt_completions_path(self, user_id: int, ai_prompt_id: int, completion_id: Optional[str] = None)
def get_ai_prompt_fine_tuning_dataset_generation_status(self, user_id: int, ai_prompt_id: int, job_identifier: str)

Get AI Prompt Fine-Tuning Dataset Generation Status

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.fine-tuning.datasets.get

def get_ai_prompt_fine_tuning_datasets_path(self, user_id: int, ai_prompt_id: Optional[int] = None, job_identifier: Optional[str] = None)
def get_ai_prompt_fine_tuning_job_status(self, user_id: int, ai_prompt_id: int, job_identifier: str)
def get_ai_prompt_fine_tuning_jobs_path(self, user_id: int, ai_prompt_id: Optional[int] = None, job_identifier: Optional[str] = None)
def get_ai_provider(self, userId: int, aiProviderId: int)
def get_ai_provider_gateway(self, user_id: int, ai_provider_id: int, path: str)
def get_ai_provider_gateway_path(self, user_id: int, ai_provider_id: int, path: str) ‑> str
def get_ai_provider_path(self, userId: int, aiProviderId: Optional[int] = None)
def get_ai_reports_path(self, user_id: int, ai_report_id: Optional[str] = None)
def get_ai_request_logs_path(self, user_id: int)
def get_ai_settings(self, user_id: int)
def get_ai_settings_path(self, user_id: int)
def get_ai_snippet(self, user_id: int, ai_snippet_id: int)
def get_ai_snippets_path(self, user_id: int, ai_snippet_id: Optional[int] = None)
def get_ai_usage_member(self, user_id: int, member_id: int)

Get AI Usage Member

member_id is the identifier of the project member (or your own user id for own usage).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.ai.usage.members.get

def get_ai_usage_members_path(self, user_id: int, member_id: Optional[int] = None)
def get_project_ai_settings(self, projectId: Optional[int] = None)
def list_ai_custom_placeholders(self, user_id: int)

List AI Custom Placeholders

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use list_ai_snippets instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompt.custom.placeholders.getMany

def list_ai_prompt_fine_tuning_events(self, user_id: int, ai_prompt_id: int, job_identifier: str)
def list_ai_prompt_fine_tuning_jobs(self, user_id: int, statuses: Optional[Iterable[AiPromptFineTuningJobStatus]] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_prompts(self, userId: int, projectId: Optional[int] = None, action: Optional[AIPromptAction] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_provider_models(self, userId: int, aiProviderId: int)
def list_ai_providers(self, userId: int, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_request_logs(self, user_id: int, request_id: Optional[str] = None, project_id: Optional[int] = None, request_user_id: Optional[int] = None, ai_provider_id: Optional[int] = None, model: Optional[str] = None, source_action: Optional[AiRequestLogSourceAction] = None, prompt_action: Optional[str] = None, statuses: Optional[Iterable[AiRequestLogStatus]] = None, system_credentials: Optional[bool] = None, is_auto_triggered: Optional[bool] = None, token_name: Optional[str] = None, oauth_client_id: Optional[str] = None, created_after: Optional[datetime.datetime] = None, created_before: Optional[datetime.datetime] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_snippets(self, user_id: int, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_usage_members(self, user_id: int, user_ids: Optional[Iterable[int]] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_all_ai_provider_models(self, user_id: int)

List AI Provider Models

Lists the models of all AI providers available to the user. To list the models of a single AI provider, use list_ai_provider_models.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.ai.providers.models.crowdin.getMany

def list_supported_ai_provider_models(self, user_id: int, limit: Optional[int] = None, offset: Optional[int] = None, provider_type: Optional[AIProviderType] = None, enabled: Optional[bool] = None, order_by: Optional[Sorting] = None)
def replace_ai_provider_gateway(self, user_id: int, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def translate_ai_strings(self, user_id: int, request_data: AiTranslateStringsRequest)
class AdvisorsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Advisors.

Advisors run inspectors against a project and report insights about its localization health.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Advisors

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Advisors

Ancestors

Methods

def create_advisor_check(self, category: Optional[str] = None, inspectors: Optional[Iterable[AdvisorCheckInspector]] = None, projectId: Optional[int] = None)

Create Advisor Check.

At most one of category or inspectors may be set; if neither is set, every inspector is re-checked.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.advisors.checks.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.advisors.checks.post

def create_or_update_application_advisor_insight(self, applicationIdentifier: str, moduleKey: str, outcome: AdvisorInsightOutcome, checkedAt: Union[datetime.datetime, str, None] = None, metrics: Optional[Iterable[AdvisorInsightMetric]] = None, recommendations: Optional[Iterable[AdvisorInsightRecommendation]] = None, payload: Optional[Dict[str, Any]] = None, projectId: Optional[int] = None)

Create or Update Application Advisor Insight.

Called by an installed application's advisor-inspector module to publish its check result.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.applications.modules.advisors.insights.put

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.applications.modules.advisors.insights.put

def edit_advisor_insight(self, insightId: int, data: Iterable[AdvisorInsightPatchRequest], projectId: Optional[int] = None)
def get_advisor_check_status(self, checkId: str, projectId: Optional[int] = None)
def get_advisor_checks_path(self, projectId: int, checkId: Optional[str] = None)
def get_advisor_insights_path(self, projectId: int, insightId: Optional[int] = None)
def list_advisor_insights(self, projectId: Optional[int] = None, isDismissed: Optional[bool] = None, status: Union[str, AdvisorInsightStatus, Iterable[Union[str, AdvisorInsightStatus]], None] = None, outcome: Union[str, AdvisorInsightOutcome, Iterable[Union[str, AdvisorInsightOutcome]], None] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Advisor Insights.

status and outcome accept a single value or a list of values (sent comma-separated).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.advisors.insights.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.advisors.insights.getMany

class ApplicationResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Crowdin Apps are web applications that can be integrated with Crowdin to extend its functionality.

Use the API to manage the necessary app data.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Applications

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Applications

Ancestors

Methods

Add Application Consent

Available for Crowdin.com only (not supported in Crowdin Enterprise).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.consents.post

def add_application_data(self, applicationIdentifier: str, path: str, data: dict, params: Optional[Dict[~KT, ~VT]] = None)

Add Application Data.

params are application-specific query parameters.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.api.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.api.post

def add_application_kv_record(self, applicationIdentifier: str, key: str, value: Any, secret: Optional[bool] = None, ttl: Optional[int] = None)

Add Application KV Record

Requires the application's own access token (personal access tokens are not supported).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.storage.kv.records.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.storage.kv.records.post

def apply_application_installation_update(self, identifier: str, manifestHash: str)
def cancel_integration_job(self, applicationIdentifier: str, jobId: str, projectId: Optional[int] = None)

Delete Application Consent

Available for Crowdin.com only (not supported in Crowdin Enterprise).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.consents.delete

def delete_application_data(self, applicationIdentifier: str, path: str, params: Optional[Dict[~KT, ~VT]] = None)

Delete Application Data.

params are application-specific query parameters.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.api.delete

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.api.delete

def delete_application_installation(self, identifier: str, force: Optional[bool] = None)
def delete_application_kv_record(self, applicationIdentifier: str, key: str)

Delete Application KV Record

Requires the application's own access token (personal access tokens are not supported).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.storage.kv.records.delete

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.storage.kv.records.delete

Edit Application Consent

Available for Crowdin.com only (not supported in Crowdin Enterprise).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.consents.patch

def edit_application_data(self, applicationIdentifier: str, path: str, data: dict, params: Optional[Dict[~KT, ~VT]] = None)

Edit Application Data.

params are application-specific query parameters.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.api.patch

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.api.patch

def edit_application_installation(self, identifier: str, data: Iterable[ApplicationInstallationPatchRequest])

Edit Application Installation

Supported paths: /permissions, /modules/{moduleKey}/permissions and /manifest (the latter only for applications installed from manifest content).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.installations.patch

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.installations.patch

def edit_application_kv_record(self, applicationIdentifier: str, key: str, data: Iterable[ApplicationKVRecordPatchRequest])

Edit Application KV Record

Requires the application's own access token (personal access tokens are not supported).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.storage.kv.records.patch

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.storage.kv.records.patch

def edit_applicatoin_installation(self, identifier: str, data: Iterable[ApplicationInstallationPatchRequest])

Edit Application Installation

Deprecated: use edit_application_installation instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.installations.patch

def get_application_consents_path(self, consent_id: Optional[int] = None)
def get_application_data(self, applicationIdentifier: str, path: str, params: Optional[Dict[~KT, ~VT]] = None)

Get Application Data.

params are application-specific query parameters.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.api.get

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.api.get

def get_application_installation(self, identifier: str)
def get_application_installation_update(self, identifier: str)

Get Application Installation Update

Returns the diff between the installed application and the latest cached manifest, tagged with manifestHash.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.installations.update.get

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.installations.update.get

def get_application_installations_path(self, identifier: Optional[str] = None)
def get_application_kv_record(self, applicationIdentifier: str, key: str)

Get Application KV Record

Requires the application's own access token (personal access tokens are not supported).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.storage.kv.records.get

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.storage.kv.records.get

def get_application_kv_records_path(self, applicationIdentifier: str, key: Optional[str] = None)
def get_application_path(self, applicationIdentifier: str, path: str)
def get_integration_file_progress(self, applicationIdentifier: str, fileId: int, projectId: Optional[int] = None)
def get_integration_job(self, applicationIdentifier: str, jobId: Optional[str] = None, projectId: Optional[int] = None)
def get_integration_job_info(self, applicationIdentifier: str, jobId: str, projectId: Optional[int] = None)
def get_integration_login_fields(self, applicationIdentifier: str)
def get_integration_settings(self, applicationIdentifier: str, projectId: Optional[int] = None)
def get_integration_sync_settings(self, applicationIdentifier: str, provider: Union[IntegrationSyncProvider, str], projectId: Optional[int] = None)
def install_application(self, url: Optional[str] = None, permissions: Optional[ApplicationPermissions] = None, manifest: Optional[ApplicationManifest] = None, modules: Optional[Iterable[ApplicationModulePermissions]] = None, assignAgent: Optional[bool] = None)

Install Application

Install an application either from a hosted manifest URL (url) or from its manifest content (manifest, serverless apps only). Exactly one of url or manifest must be provided.

permissions.user is deprecated by the API, use modules permissions instead. assignAgent is supported only when installing from a manifest URL.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.installations.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.installations.post

def integration_login(self, applicationIdentifier: str, credentials: Dict[str, Any], projectId: Optional[int] = None)

Integration Login

credentials are the login form fields, see get_integration_login_fields. Available for file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.integrations.integration.login

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.integrations.integration.login

def list_application_consents(self, identifier: Optional[str] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)

List Application Consents

Available for Crowdin.com only (not supported in Crowdin Enterprise).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.consents.getMany

def list_application_installations(self, offset: Optional[int] = None, limit: Optional[int] = None, installedBy: Optional[int] = None, orderBy: Optional[Sorting] = None)
def list_application_kv_records(self, applicationIdentifier: str, prefix: Optional[str] = None, orderBy: Optional[Sorting] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Application KV Records

Requires the application's own access token (personal access tokens are not supported).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.storage.kv.records.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.storage.kv.records.getMany

def list_integration_crowdin_files(self, applicationIdentifier: str, projectId: Optional[int] = None)
def list_integration_files(self, applicationIdentifier: str, projectId: Optional[int] = None)
def list_integration_jobs(self, applicationIdentifier: str, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def update_application_data(self, applicationIdentifier: str, path: str, data: dict, params: Optional[Dict[~KT, ~VT]] = None)

Update or Restore Application Data.

params are application-specific query parameters.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.api.put

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.api.put

def update_integration_crowdin_files(self, applicationIdentifier: str, files: Iterable[IntegrationCrowdinUpdateFile], uploadTranslations: Optional[bool] = None, projectId: Optional[int] = None)
def update_integration_files(self, applicationIdentifier: str, files: Dict[Union[int, str], Iterable[str]], projectId: Optional[int] = None)

Update Integration Files

files maps Crowdin file ids to lists of language ids, e.g. {102: ["de", "fr"]}. Available for file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.integrations.integration.update

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.integrations.integration.update

def update_integration_settings(self, applicationIdentifier: str, config: Dict[str, Any], projectId: Optional[int] = None)
def update_integration_sync_settings(self, applicationIdentifier: str, provider: IntegrationSyncProvider, files: Union[Dict[Union[int, str], Iterable[str]], Iterable[IntegrationSyncSettingsFile]], projectId: Optional[int] = None)

Update Sync Settings

files is either a mapping of Crowdin file ids to language ids (e.g. {102: ["uk", "de"]}) or a list of integration file objects. Available for file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.integrations.sync.settings.update

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.integrations.sync.settings.update

def upload_application_bundle(self, identifier: str, storageId: int)

Upload Application Bundle

Upload a bundle archive (ZIP with a non-empty app.js at its root) for a serverless app installed from manifest content.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.applications.installations.bundles.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.applications.installations.bundles.post

class BranchesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Branches.

Branch CRUD and deletion status endpoints are available for both file-based and string-based projects. Clones and merges are available for string-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Branches https://support.crowdin.com/developer/api/v2/string-based/#tag/Branches

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Branches https://support.crowdin.com/developer/enterprise/api/v2/string-based/#tag/Branches

Ancestors

Methods

def add_branch(self, project_id: int, request_data: AddBranchRequest)
def check_branch_clone_status(self, project_id: int, branch_id: int, clone_id: str)
def check_branch_deletion_status(self, project_id: int, branch_id: int, job_identifier: str)
def check_branch_merge_status(self, project_id: int, branch_id: int, merge_id: Union[int, str])
def clone_branch(self, project_id: int, branch_id: int, request_data: CloneBranchRequest)
def delete_branch(self, project_id: int, branch_id: int, prefer: Optional[str] = None)
def edit_branch(self, project_id: int, branch_id: int, patches: Iterable[EditBranchPatch])
def get_branch(self, project_id: int, branch_id: int)
def get_branch_clones_path(self, project_id: int, branch_id: int, clone_id: Optional[str] = None)
def get_branch_merge_summary(self, project_id: int, branch_id: int, merge_id: Union[int, str])
def get_branch_merges_path(self, project_id: int, branch_id: int, merge_id: Union[int, str, None] = None)
def get_branches_path(self, project_id: int, branch_id: Optional[int] = None)
def get_cloned_branch(self, project_id: int, branch_id: int, clone_id: str)
def list_branches(self, project_id: int, name: Optional[str] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def merge_branch(self, project_id: int, branch_id: int, request: MergeBranchRequest)
class BundlesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Bundles.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Bundles

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Bundles

Ancestors

Methods

def add_bundle(self, name: str, format: Optional[str], sourcePatterns: Iterable[str], exportPattern: Optional[str], projectId: Optional[int] = None, ignorePatterns: Optional[Iterable[str]] = None, isMultilingual: Optional[bool] = None, includeProjectSourceLanguage: Optional[bool] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, sourceLanguageExportPattern: Optional[str] = None, includeInContextPseudoLanguage: Optional[bool] = None, labelMatchRule: Optional[BundleLabelMatchRule] = None, excludeLabelMatchRule: Optional[BundleLabelMatchRule] = None, languageIds: Optional[Iterable[str]] = None)

Add Bundles.

format and exportPattern may be None: if format is not provided, files are exported in their original format (format is required for string-based projects), and exportPattern is required only if format is specified.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.bundles.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.bundles.post

def check_bundle_export_status(self, bundleId: int, exportId: str, projectId: Optional[int] = None)
def delete_bundle(self, bundleId: int, projectId: Optional[int] = None)
def download_bundle(self, bundleId: int, exportId: str, projectId: Optional[int] = None)
def edit_bundle(self, bundleId: int, data: Iterable[BundlePatchRequest], projectId: Optional[int] = None)
def export_bundle(self, bundleId: int, projectId: Optional[int] = None, targetLanguageIds: Optional[Iterable[str]] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None)

Export bundle.

skipUntranslatedFiles is for file-based projects only, exportApprovedOnly is for Crowdin only, exportWithMinApprovalsCount and exportStringsThatPassedWorkflow are for Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.bundles.exports.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.bundles.exports.post

def get_bundle(self, bundleId: int, projectId: Optional[int] = None)
def get_bundle_list_files(self, bundleId: int, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_bundles_exports_path(self, projectId: int, bundleId: int, exportId: Optional[str] = None)
def get_bundles_path(self, projectId: int, bundleId: Optional[int] = None)
def list_bundle_branches(self, bundleId: int, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_bundles(self, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class ClientsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Clients.

Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Clients

Ancestors

Methods

def get_clients_path(self)
def list_clients(self, limit: Optional[int] = None, offset: Optional[int] = None)
class CustomPlaceholdersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Custom Placeholders.

Custom placeholders of the organization. Assign them to a project with Add Project Placeholder.

Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Custom-Placeholders

Ancestors

Methods

def add_custom_placeholder(self, definition: str, description: Optional[str] = None, argumentDelimiter: Optional[str] = None)
def delete_custom_placeholder(self, customPlaceholderId: int)
def edit_custom_placeholder(self, customPlaceholderId: int, data: Iterable[CustomPlaceholderPatchRequest])
def get_custom_placeholder(self, customPlaceholderId: int)
def get_custom_placeholders_path(self, customPlaceholderId: Optional[int] = None)
def list_custom_placeholders(self, limit: Optional[int] = None, offset: Optional[int] = None)
class CustomSpellcheckersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Custom Spellcheckers.

Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Custom-Spellcheckers

Ancestors

Methods

def get_custom_spellchecker(self, customSpellcheckerId: int)
def get_custom_spellcheckers_path(self, customSpellcheckerId: Optional[int] = None)
def list_custom_spellcheckers(self, limit: Optional[int] = None, offset: Optional[int] = None)
class DictionariesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Dictionaries.

Dictionaries allow you to create a storage of words that should be skipped by the spell checker.

Use API to get the list of organization dictionaries and to edit a specific dictionary.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Dictionaries

Ancestors

Methods

def edit_dictionary(self, languageId: str, data: Iterable[DictionaryPatchRequest], projectId: Optional[int] = None)

Edit Dictionary.

:param data: JSON Patch operations ("add"/"remove") on "/words/{index}" paths, e.g. {"op": "add", "path": "/words/-", "value": "word"} or {"op": "remove", "path": "/words/0"}. To remove several words in one request, specify the word indexes in reverse order.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.dictionaries.patch

def list_dictionaries(self, projectId: Optional[int] = None, languageIds: Optional[Iterable[str]] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class DistributionsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Distributions.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Distributions

Ancestors

Methods

def add_distribution(self, name: str, projectId: Optional[int] = None, fileIds: Optional[Iterable[int]] = None, bundleIds: Optional[Iterable[int]] = None, exportMode: Optional[ExportMode] = None)

Add Distribution.

:param fileIds: Deprecated, use bundleIds instead. File-based projects only. :param bundleIds: Bundles ids. Get via List Bundles. Required for string-based projects. :param exportMode: Deprecated, omit it to use the API default behavior. File-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.distributions.post

def delete_distribution(self, hash: str, projectId: Optional[int] = None)
def edit_distribution(self, hash: str, data: Iterable[DistributionPatchRequest], projectId: Optional[int] = None)
def get_distribution(self, hash: str, projectId: Optional[int] = None)
def get_distribution_release(self, hash: str, projectId: Optional[int] = None)
def get_distributions_path(self, projectId: int, hash: Optional[str] = None)
def list_distributions(self, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def release_distribution(self, hash: str, projectId: Optional[int] = None)
class EnterpriseAIResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Enterprise Resource for AI.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI

Ancestors

Methods

def add_ai_custom_placeholder(self, body: AddAiCustomPlaceholderRequest)

Add AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use add_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.post

def add_ai_prompt(self, request_data: AddAIPromptRequestScheme)
def add_ai_provider(self, request_data: AddAIProviderReqeustScheme)
def add_ai_snippet(self, request_data: AddAiSnippetRequest)
def cancel_ai_file_translation(self, job_identifier: str)
def cancel_ai_prompt_completion(self, ai_prompt_id: int, completion_id: str)
def check_ai_report_generation_status(self, ai_report_id: str)
def check_ai_request_logs_export_status(self, export_id: str)
def clone_ai_prompt(self, ai_prompt_id: int, name: Optional[str] = None)
def create_ai_file_translation(self, request_data: AiFileTranslationRequest)
def create_ai_prompt_fine_tuning_job(self, ai_prompt_id: int, request_data: CreateAIPromptFineTuningJobRequest)
def create_ai_provider_gateway(self, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def create_ai_proxy_chat_completion(self, aiProviderId: int, request_data: Union[GoogleGeminiChatProxy, OtherChatProxy])

Create AI Proxy Chat Completion

This API method serves as an intermediary, forwarding your requests directly to the selected provider. Please refer to the documentation for the specific provider you use to determine the required payload format.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.chat.completions.post

def delete_ai_custom_placeholder(self, ai_custom_placeholder_id: int)

Delete AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use delete_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.delete

def delete_ai_prompt(self, aiPromptId: int)
def delete_ai_provider(self, aiProviderId: int)
def delete_ai_provider_gateway(self, ai_provider_id: int, path: str)
def delete_ai_snippet(self, ai_snippet_id: int)
def download_ai_file_translation(self, job_identifier: str)
def download_ai_file_translation_strings(self, job_identifier: str)
def download_ai_prompt_completion(self, ai_prompt_id: int, completion_id: str)
def download_ai_prompt_fine_tuning_dataset(self, ai_prompt_id: int, job_identifier: str)
def download_ai_report(self, ai_report_id: str)
def download_ai_request_logs_export(self, export_id: str)
def edit_ai_custom_placeholder(self, ai_custom_placeholder_id: int, patches: Iterable[EditAiCustomPlaceholderPatch])

Edit AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use edit_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.patch

def edit_ai_prompt(self, aiPromptId: int, request_data: Iterable[EditAIPromptScheme])
def edit_ai_provider(self, aiProviderId: int, request_data: EditAIProviderRequestScheme)
def edit_ai_provider_gateway(self, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def edit_ai_settings(self, patches: Iterable[EditAiSettingsPatch])
def edit_ai_snippet(self, ai_snippet_id: int, patches: Iterable[EditAiSnippetPatch])
def export_ai_request_logs(self, export_format: Optional[AiRequestLogExportFormat] = None, request_id: Optional[str] = None, project_id: Optional[int] = None, request_user_id: Optional[int] = None, ai_provider_id: Optional[int] = None, model: Optional[str] = None, source_action: Optional[AiRequestLogSourceAction] = None, prompt_action: Optional[str] = None, statuses: Optional[Iterable[AiRequestLogStatus]] = None, system_credentials: Optional[bool] = None, is_auto_triggered: Optional[bool] = None, token_name: Optional[str] = None, oauth_client_id: Optional[str] = None, created_after: Optional[datetime.datetime] = None, created_before: Optional[datetime.datetime] = None)

Export AI Request Logs

Starts an asynchronous export of the AI request logs matching the filters. Poll check_ai_request_logs_export_status until the status is finished, then call download_ai_request_logs_export.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.requestLogs.exports.post

def generate_ai_prompt_completion(self, ai_prompt_id: int, request: GenerateAiPromptCompletionRequest)
def generate_ai_prompt_fine_tuning_dataset(self, ai_prompt_id: int, request_data: GenerateAIPromptFineTuningDatasetRequest)
def generate_ai_report(self, request: GenerateAiReportRequest)
def get_ai_custom_placeholder(self, ai_custom_placeholder_id: int)

Get AI Custom Placeholder

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use get_ai_snippet instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.get

def get_ai_custom_placeholders_path(self, ai_custom_placeholder_id: Optional[int] = None)
def get_ai_file_translation_status(self, job_identifier: str)
def get_ai_file_translations_path(self, job_identifier: Optional[str] = None)
def get_ai_path(self, aiPromptId: Optional[int] = None)
def get_ai_prompt(self, aiPromptId: int)
def get_ai_prompt_completion_status(self, ai_prompt_id: int, completion_id: str)
def get_ai_prompt_completions_path(self, ai_prompt_id: int, completion_id: Optional[str] = None)
def get_ai_prompt_fine_tuning_dataset_generation_status(self, ai_prompt_id: int, job_identifier: str)
def get_ai_prompt_fine_tuning_datasets_path(self, ai_prompt_id: int, job_identifier: Optional[str] = None)
def get_ai_prompt_fine_tuning_job_status(self, ai_prompt_id: int, job_identifier: str)
def get_ai_prompt_fine_tuning_jobs_path(self, ai_prompt_id: int, job_identifier: Optional[str] = None)
def get_ai_provider(self, aiProviderId: int)
def get_ai_provider_gateway(self, ai_provider_id: int, path: str)
def get_ai_provider_gateway_path(self, ai_provider_id: int, path: str) ‑> str
def get_ai_provider_path(self, aiProviderId: Optional[int] = None)
def get_ai_reports_path(self, ai_report_id: Optional[str] = None)
def get_ai_request_logs_path(self)
def get_ai_settings(self)
def get_ai_snippet(self, ai_snippet_id: int)
def get_ai_snippets_path(self, ai_snippet_id: Optional[int] = None)
def get_ai_usage_member(self, member_id: int)

Get AI Usage Member

member_id is the identifier of the organization user.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.usage.members.get

def get_ai_usage_members_path(self, member_id: Optional[int] = None)
def get_project_ai_settings(self, projectId: Optional[int] = None)
def list_ai_custom_placeholders(self)

List AI Custom Placeholders

Deprecated: AI Custom Placeholders were replaced by AI Snippets, use list_ai_snippets instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.custom.placeholders.getMany

def list_ai_prompt_fine_tuning_events(self, ai_prompt_id: int, job_identifier: str)
def list_ai_prompt_fine_tuning_jobs(self, statuses: Optional[Iterable[AiPromptFineTuningJobStatus]] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_prompts(self, projectId: Optional[int] = None, action: Optional[AIPromptAction] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_provider_models(self, aiProviderId: int)
def list_ai_providers(self, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_request_logs(self, request_id: Optional[str] = None, project_id: Optional[int] = None, request_user_id: Optional[int] = None, ai_provider_id: Optional[int] = None, model: Optional[str] = None, source_action: Optional[AiRequestLogSourceAction] = None, prompt_action: Optional[str] = None, statuses: Optional[Iterable[AiRequestLogStatus]] = None, system_credentials: Optional[bool] = None, is_auto_triggered: Optional[bool] = None, token_name: Optional[str] = None, oauth_client_id: Optional[str] = None, created_after: Optional[datetime.datetime] = None, created_before: Optional[datetime.datetime] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_snippets(self, limit: Optional[int] = None, offset: Optional[int] = None)
def list_ai_usage_members(self, user_ids: Optional[Iterable[int]] = None, order_by: Optional[Sorting] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_all_ai_provider_models(self)

List AI Provider Models

Lists the models of all AI providers available in the organization. To list the models of a single AI provider, use list_ai_provider_models.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.ai.providers.models.enterprise.getMany

def list_supported_ai_provider_models(self, limit: Optional[int] = None, offset: Optional[int] = None, provider_type: Optional[AIProviderType] = None, enabled: Optional[bool] = None, order_by: Optional[Sorting] = None)
def replace_ai_provider_gateway(self, ai_provider_id: int, path: str, request_data: Optional[Dict[~KT, ~VT]] = None)
def translate_ai_strings(self, request_data: AiTranslateStringsRequest)
class EnterpriseMachineTranslationEnginesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Machine Translation Engines (Crowdin Enterprise).

Machine Translation Engines (MTE) are the sources for pre-translations.

Use API to add, update, and delete specific MTE.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Machine-Translation-Engines

Ancestors

Methods

def add_mt(self, name: str, type: MachineTranslationEngineType, credentials: Union[MachineTranslationEngineApiKeyCredentials, MachineTranslationEngineGoogleAutoMLCredentials, MachineTranslationEngineMicrosoftCredentials, MachineTranslationEngineAmazonCredentials, MachineTranslationEngineCustomMTCredentials], groupId: Optional[int] = None, enabledLanguageIds: Optional[Iterable[str]] = None, enabledProjectIds: Optional[Iterable[int]] = None, isEnabled: Optional[bool] = None)
def delete_mt(self, mtId: int)
def edit_mt(self, mtId: int, data: Iterable[MachineTranslationEnginePatchRequest])
def list_mts(self, limit: Optional[int] = None, offset: Optional[int] = None, groupId: Optional[int] = None)

List MTs.

:param groupId: Group Identifier. Set 0 to see MTs of root group

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.mts.getMany

Inherited members

class EnterpriseReportsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Enterprise Reports.

Reports help to estimate costs, calculate translation costs, and identify the top members.

Use API to generate Cost Estimate, Translation Cost, and Top Members reports. You can then export reports in .xlsx or .csv file formats. Report generation is an asynchronous operation and shall be completed with a sequence of API methods.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Reports

Ancestors

Static methods

def get_group_reports_path(group_id: int, report_id: Optional[str] = None)
def get_organization_report_settings_templates_path(reportSettingsTemplateId: Optional[int] = None)
def get_organization_reports_path(report_id: Optional[str] = None)

Methods

def add_organization_report_settings_template(self, name: str, currency: Currency, unit: Unit, config: Union[PostEditingConfig, HourlyConfig], project_id: Optional[int] = None, group_id: Optional[int] = None, is_public: Optional[bool] = None)

Add Organization Report Settings Template.

project_id and group_id can't be used together.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.post

def add_report_settings_template(self, name: str, currency: Currency, unit: Unit, config: Union[PostEditingConfig, HourlyConfig, Config], isPublic: Optional[bool] = None, projectId: Optional[int] = None, isGlobal: Optional[bool] = None)

Add Report Settings Templates.

Deprecated: use add_organization_report_settings_template instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.post

def check_group_report_generation_status(self, group_id: int, report_id: str)

Check Group Report Generation Status.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.get

def check_organization_report_generation_status(self, report_id: str)

Check Organization Report Generation Status.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.get

def check_report_archive_export_status(self, archiveId: int, exportId: str)
def delete_organization_report_settings_template(self, reportSettingsTemplateId: int)
def delete_report_archive(self, archiveId: int)
def delete_report_settings_template(self, reportSettingsTemplateId: int, projectId: Optional[int] = None)

Delete Report Settings Templates.

Deprecated: use delete_organization_report_settings_template instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.delete

def download_group_report(self, group_id: int, report_id: str)
def download_organization_report(self, report_id: str)
def download_report_archive(self, archiveId: int, exportId: str)
def edit_organization_report_settings_template(self, reportSettingsTemplateId: int, data: Iterable[ReportSettingsTemplatesPatchRequest])
def edit_report_settings_template(self, reportSettingsTemplateId: int, data: Iterable[ReportSettingsTemplatesPatchRequest], projectId: Optional[int] = None)

Edit Report Settings Templates.

Deprecated: use edit_organization_report_settings_template instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.patch

def export_report_archive(self, archiveId: int, format: Optional[ExportFormat] = None)
def generate_fuzzy_cost_estimate_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, languageId: Optional[str] = None, fileIds: Optional[Iterable[int]] = None, format: Optional[Format] = Format.XLSX, stepTypes: Optional[Iterable[StepTypes]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Cost Estimate Fuzzy Mode).

Links to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.reports.post

def generate_fuzzy_translation_cost_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = Format.XLSX, groupBy: Optional[GroupBy] = None, stepTypes: Optional[Iterable[StepTypes]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Translation Cost Fuzzy Mode).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.reports.post

def generate_group_pre_translate_accuracy_by_task_report(self, group_id: int, unit: Optional[Unit] = None, format: Optional[Format] = None, match_score_categories: Optional[Iterable[str]] = None, task_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Group Report (Pre-Translate Accuracy By Task).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_pre_translate_accuracy_general_report(self, group_id: int, unit: Optional[Unit] = None, language_id: Optional[str] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, match_score_categories: Optional[Iterable[str]] = None, project_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Group Report (Pre-Translate Accuracy General).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_qa_check_issues_report(self, group_id: int, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None)

Generate Group Report (Qa Check Issues).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_report(self, group_id: int, request_data: Dict[~KT, ~VT])

Generate Group Report.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_saving_activity_report(self, group_id: int, unit: Optional[Unit] = None, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, language_id: Optional[str] = None, mode: Optional[SavingActivityMode] = None)

Generate Group Report (Saving Activity).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_source_content_updates_report(self, group_id: int, unit: Optional[Unit] = None, format: Optional[Format] = None, project_ids: Optional[Iterable[int]] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None)

Generate Group Report (Source Content Updates).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_task_usage_report(self, group_id: int, format: Optional[Format] = None, type: Optional[TaskUsageReportType] = None, project_ids: Optional[Iterable[int]] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, group_by: Optional[GroupBy] = None, type_task: Optional[TaskType] = None, language_id: Optional[str] = None, creator_id: Optional[int] = None, assignee_id: Optional[int] = None, words_count_from: Optional[int] = None, words_count_to: Optional[int] = None, statuses: Optional[Iterable[TaskUsageStatus]] = None)

Generate Group Report (Task Usage).

words_count_from and words_count_to are used only with time type, statuses only with cost type. type_task is sent as typeTasks.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_time_spent_report(self, group_id: int, format: Optional[Format] = None, group_by: Optional[GroupBy] = None, base_rates: Optional[HourlyBaseRates] = None, individual_rates: Optional[Iterable[HourlyIndividualRate]] = None, language_id: Optional[str] = None, user_ids: Optional[Iterable[int]] = None, type_tasks: Optional[TaskType] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, project_ids: Optional[Iterable[int]] = None, task_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)
def generate_group_top_members_report(self, group_id: int, project_ids: Optional[Iterable[int]] = None, unit: Optional[Unit] = None, language_id: Optional[str] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None)

Generate Group Report (Top Members).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_translation_activity_report(self, group_id: int, unit: Optional[Unit] = None, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None)

Generate Group Report (Translation Activity).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_translation_costs_post_editing_by_task_report(self, group_id: int, base_rates: BaseRates, individual_rates: Iterable[IndividualRate], net_rate_schemes: NetRateSchemes, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = None, task_ids: Optional[Iterable[int]] = None, use_category_based_proofread_rates: Optional[bool] = None, use_tm_edit_distance: Optional[bool] = None, skip_archiving: Optional[bool] = None)

Generate Group Report (Translation Costs Post-Editing By Task).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_translation_costs_post_editing_general_report(self, group_id: int, base_rates: BaseRates, individual_rates: Iterable[IndividualRate], net_rate_schemes: NetRateSchemes, project_ids: Optional[Iterable[int]] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = None, group_by: Optional[GroupBy] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None, use_category_based_proofread_rates: Optional[bool] = None, use_tm_edit_distance: Optional[bool] = None, skip_archiving: Optional[bool] = None)

Generate Group Report (Translation Costs Post-Editing General).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_group_translator_accuracy_report(self, group_id: int, unit: Optional[Unit] = None, format: Optional[Format] = None, language_id: Optional[str] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, match_score_categories: Optional[Iterable[str]] = None, user_ids: Optional[Iterable[int]] = None, project_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Group Report (Translator Accuracy).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.reports.post

def generate_organization_pre_translate_accuracy_by_task_report(self, unit: Optional[Unit] = None, format: Optional[Format] = None, match_score_categories: Optional[Iterable[str]] = None, task_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Pre-Translate Accuracy By Task).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_pre_translate_accuracy_general_report(self, unit: Optional[Unit] = None, language_id: Optional[str] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, match_score_categories: Optional[Iterable[str]] = None, project_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Pre-Translate Accuracy General).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_qa_check_issues_report(self, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None)

Generate Organization Report (Qa Check Issues).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_report(self, request_data: Dict[~KT, ~VT])
def generate_organization_saving_activity_report(self, unit: Optional[Unit] = None, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, language_id: Optional[str] = None, mode: Optional[SavingActivityMode] = None)

Generate Organization Report (Saving Activity).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_source_content_updates_report(self, unit: Optional[Unit] = None, format: Optional[Format] = None, project_ids: Optional[Iterable[int]] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None)

Generate Organization Report (Source Content Updates).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_task_usage_report(self, format: Optional[Format] = None, type: Optional[TaskUsageReportType] = None, project_ids: Optional[Iterable[int]] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, group_by: Optional[GroupBy] = None, type_tasks: Optional[TaskType] = None, language_id: Optional[str] = None, creator_id: Optional[int] = None, assignee_id: Optional[int] = None, words_count_from: Optional[int] = None, words_count_to: Optional[int] = None, statuses: Optional[Iterable[TaskUsageStatus]] = None)

Generate Organization Report (Task Usage).

words_count_from and words_count_to are used only with time type, statuses only with cost type.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_time_spent_report(self, format: Optional[Format] = None, group_by: Optional[GroupBy] = None, base_rates: Optional[HourlyBaseRates] = None, individual_rates: Optional[Iterable[HourlyIndividualRate]] = None, language_id: Optional[str] = None, user_ids: Optional[Iterable[int]] = None, type_tasks: Optional[TaskType] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, project_ids: Optional[Iterable[int]] = None, task_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Time Spent).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_top_members_report(self, project_ids: Optional[Iterable[int]] = None, unit: Optional[Unit] = None, language_id: Optional[str] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None)

Generate Organization Report (Top Members).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_translation_activity_report(self, unit: Optional[Unit] = None, project_ids: Optional[Iterable[int]] = None, format: Optional[Format] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None)

Generate Organization Report (Translation Activity).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_translation_costs_post_editing_by_task_report(self, base_rates: BaseRates, individual_rates: Iterable[IndividualRate], net_rate_schemes: NetRateSchemes, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = None, task_ids: Optional[Iterable[int]] = None, use_category_based_proofread_rates: Optional[bool] = None, use_tm_edit_distance: Optional[bool] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Translation Costs Post-Editing By Task).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_translation_costs_post_editing_general_report(self, base_rates: BaseRates, individual_rates: Iterable[IndividualRate], net_rate_schemes: NetRateSchemes, project_ids: Optional[Iterable[int]] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = None, group_by: Optional[GroupBy] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, user_ids: Optional[Iterable[int]] = None, use_category_based_proofread_rates: Optional[bool] = None, use_tm_edit_distance: Optional[bool] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Translation Costs Post-Editing General).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_organization_translator_accuracy_report(self, unit: Optional[Unit] = None, format: Optional[Format] = None, language_id: Optional[str] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, match_score_categories: Optional[Iterable[str]] = None, user_ids: Optional[Iterable[int]] = None, project_ids: Optional[Iterable[int]] = None, skip_archiving: Optional[bool] = None)

Generate Organization Report (Translator Accuracy).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.post

def generate_simple_cost_estimate_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, languageId: Optional[str] = None, fileIds: Optional[Iterable[int]] = None, format: Optional[Format] = Format.XLSX, stepTypes: Optional[Iterable[StepTypes]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Cost Estimate schema).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.reports.post

def generate_simple_translation_cost_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = Format.XLSX, groupBy: Optional[GroupBy] = None, stepTypes: Optional[Iterable[StepTypes]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)
def generate_task_usage_report(self, project_id: Optional[int] = None, format: Optional[Format] = None, type: Optional[TaskUsageReportType] = None, date_from: Optional[datetime.datetime] = None, date_to: Optional[datetime.datetime] = None, group_by: Optional[GroupBy] = None, type_tasks: Optional[TaskType] = None, language_id: Optional[str] = None, creator_id: Optional[int] = None, assignee_id: Optional[int] = None, words_count_from: Optional[int] = None, words_count_to: Optional[int] = None, statuses: Optional[Iterable[TaskUsageStatus]] = None)

Generate Report(Task Usage).

words_count_from and words_count_to are used only with time type, statuses only with cost type.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.reports.post

def get_organization_report_settings_template(self, reportSettingsTemplateId: int)
def get_report_archive(self, archiveId: int)
def get_report_archive_export_path(self, archiveId: int, exportId: Optional[str] = None)
def get_report_archive_path(self, archiveId: Optional[int] = None)
def get_report_settings_template(self, reportSettingsTemplateId: int, projectId: Optional[int] = None)

Get Report Settings Templates.

Deprecated: use get_organization_report_settings_template instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.get

def list_organization_report_settings_templates(self, project_id: Optional[int] = None, group_id: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_report_archives(self, scopeType: Optional[ScopeType] = None, scopeId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None, userId: Optional[int] = None, taskId: Optional[int] = None, name: Optional[str] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)
def list_report_settings_template(self, projectId: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Report Settings Templates.

Deprecated: use list_organization_report_settings_templates instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.reports.settings-templates.getMany

Inherited members

class EnterpriseSourceStringsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Source Strings (Crowdin Enterprise).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Source-Strings

Ancestors

Methods

def build_reviewed_source_files(self, projectId: Optional[int] = None, branchId: Optional[int] = None)

Build Reviewed Source Files.

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.strings.reviewed-builds.post

def check_reviewed_source_files_build_status(self, buildId: int, projectId: Optional[int] = None)

Check Reviewed Source Files Build Status.

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.strings.reviewed-builds.get

def download_reviewed_source_files(self, buildId: int, projectId: Optional[int] = None)

Download Reviewed Source Files.

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.strings.reviewed-builds.download.download

def get_reviewed_builds_path(self, projectId: int, buildId: Optional[int] = None)
def list_reviewed_source_files_builds(self, projectId: Optional[int] = None, branchId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Reviewed Source Files Builds.

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.strings.reviewed-builds.getMany

Inherited members

class EnterpriseTasksResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Tasks.

Create and assign tasks to get files translated or proofread by specific people. You can set the due dates, split words between people, and receive notifications about the changes and updates on tasks. Tasks are project-specific, so you’ll have to create them within a project.

Use API to create, modify, and delete specific tasks.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Tasks

Ancestors

Methods

def add_general_by_string_ids_task(self, title: str, languageId: str, stringIds: Iterable[int], type: Optional[CrowdinGeneralTaskType] = None, workflowStepId: Optional[int] = None, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, splitContent: Optional[bool] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, assignedTeams: Optional[Iterable[EnterpriseTaskAssignedTeams]] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, batchId: Optional[int] = None, skipAssignedStringsScope: Optional[TaskSkipAssignedStringsScope] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add Task(Enterprise Task Create Form, Create By String Ids Form).

One of type or workflowStepId is required. status accepts todo or in_progress.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.post

def add_general_task(self, title: str, languageId: str, fileIds: Optional[Iterable[int]], type: Optional[CrowdinGeneralTaskType], workflowStepId: Optional[int] = None, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, splitContent: Optional[bool] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, assignedTeams: Optional[Iterable[EnterpriseTaskAssignedTeams]] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, batchId: Optional[int] = None, directoryIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, excludeLabelMatchRule: Optional[TaskLabelMatchRule] = None, skipAssignedStringsScope: Optional[TaskSkipAssignedStringsScope] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add Task(Enterprise Task Create Form, Create By Source Ids Form).

One of fileIds, directoryIds or branchIds is required (pass fileIds=None when using directoryIds or branchIds). fileIds and directoryIds are file-based projects only. One of type or workflowStepId is required (pass type=None when using workflowStepId). status accepts todo or in_progress.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.post

def add_pending_task(self, title: str, precedingTaskId: int, projectId: Optional[int] = None, description: Optional[str] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, assignedTeams: Optional[Iterable[EnterpriseTaskAssignedTeams]] = None, deadline: Optional[datetime.datetime] = None, type: Optional[CrowdinTaskType] = None, workflowStepId: Optional[int] = None, vendor: Optional[str] = None)

Add Task(Enterprise Pending Task Create Form).

One of type or workflowStepId can be provided, not both. When neither is given, type defaults to CrowdinTaskType.PROOFREAD. vendor is required for CrowdinTaskType.PROOFREAD_BY_VENDOR.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.post

def add_task_settings_template(self, name: str, config: EnterpriseTaskSettingsTemplateLanguages, projectId: Optional[int] = None)
def add_vendor_by_string_ids_task(self, title: str, languageId: str, workflowStepId: int, stringIds: Iterable[int], projectId: Optional[int] = None, description: Optional[str] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, labelIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, skipAssignedStringsScope: Optional[TaskSkipAssignedStringsScope] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add Task(Enterprise Vendor Task Create Form, Create By String Ids Form).

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.post

def add_vendor_task(self, title: str, languageId: str, workflowStepId: int, fileIds: Optional[Iterable[int]], projectId: Optional[int] = None, description: Optional[str] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, directoryIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, excludeLabelMatchRule: Optional[TaskLabelMatchRule] = None, skipAssignedStringsScope: Optional[TaskSkipAssignedStringsScope] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add Task(Enterprise Vendor Task Create Form, Create By Source Ids Form).

One of fileIds, directoryIds or branchIds is required (pass fileIds=None when using directoryIds or branchIds). fileIds and directoryIds are file-based projects only.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.post

def edit_task(self, taskId: int, data: Union[Iterable[EnterpriseTaskPatchRequest], Iterable[EnterpriseVendorTaskPatchRequest], Iterable[EnterpriseInterOrganizationalTaskPatchRequest], Iterable[EnterprisePendingTaskPatchRequest]], projectId: Optional[int] = None)

Edit Task.

The /splitFiles patch path is deprecated, use /splitContent instead.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.patch

def list_organization_tasks(self, orderBy: Optional[Sorting] = None, status: Union[CrowdinTaskStatus, Iterable[CrowdinTaskStatus], None] = None, type: Union[CrowdinTaskType, Iterable[CrowdinTaskType], None] = None, projectIds: Optional[Iterable[int]] = None, groupIds: Optional[Iterable[int]] = None, assigneeIds: Optional[Iterable[int]] = None, creatorIds: Optional[Iterable[int]] = None, targetLanguageIds: Optional[Iterable[str]] = None, sourceLanguageIds: Optional[Iterable[str]] = None, createdAtFrom: Optional[datetime.datetime] = None, createdAtTo: Optional[datetime.datetime] = None, deadlineFrom: Optional[datetime.datetime] = None, deadlineTo: Optional[datetime.datetime] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Tasks (organization level).

status and type can be a single value or a list of values. projectIds cannot be used together with groupIds.

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.tasks.getMany

Inherited members

class EnterpriseUsersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Enterprise platform Users.

Users API gives you the possibility to get profile information about the currently authenticated user.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Users

Ancestors

Methods

def add_project_member(self, userIds: Optional[Iterable[int]] = None, projectId: Optional[int] = None, accessToAllWorkflowSteps: Optional[bool] = None, managerAccess: Optional[bool] = None, permissions: Optional[Dict[~KT, ~VT]] = None, roles: Optional[Iterable[ProjectMemberRole]] = None, usernames: Optional[Iterable[str]] = None, emails: Optional[Iterable[str]] = None, developerAccess: Optional[bool] = None)

Add Project Member.

One of userIds, usernames or emails is required.

accessToAllWorkflowSteps and permissions are deprecated by the API, use roles instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.members.post

def delete_user(self, userId: int)
def edit_user(self, userId: int, data: Iterable[UserPatchRequest])
def edit_user_project_permissions(self, userId: int, data: Iterable[UserProjectPermissionsPatchRequest])
def get_group_manager(self, group_id: int, user_id: int)
def get_group_managers_path(self, group_id: int, user_id: Optional[int] = None)
def get_user(self, userId: int)
def get_users_path(self, userId: Optional[int] = None)
def invite_user(self, email: str, firstName: Optional[str] = None, lastName: Optional[str] = None, timezone: Optional[str] = None, adminAccess: Optional[bool] = None)
def list_group_managers(self, group_id: int, team_ids: Optional[Iterable[int]] = None, order_by: Optional[Sorting] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_project_members(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, search: Optional[str] = None, workflowStepId: Optional[int] = None, languageId: Optional[str] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_user_project_contributions(self, userId: int, offset: Optional[int] = None, limit: Optional[int] = None)
def list_user_project_permissions(self, userId: int, offset: Optional[int] = None, limit: Optional[int] = None)
def list_users(self, limit: Optional[int] = None, offset: Optional[int] = None, order_by: Optional[Sorting] = None, status: Optional[UserStatus] = None, search: Optional[str] = None, two_factor: Optional[str] = None, organization_roles: Optional[Iterable[OrganizationRole]] = None, team_id: Optional[int] = None, project_ids: Optional[Iterable[int]] = None, project_roles: Optional[Iterable[str]] = None, language_ids: Optional[Iterable[str]] = None, group_ids: Optional[Iterable[int]] = None, last_seen_from: Optional[datetime.datetime] = None, last_seen_to: Optional[datetime.datetime] = None)
def replace_project_member_permissions(self, memberId: int, projectId: Optional[int] = None, accessToAllWorkflowSteps: Optional[bool] = None, managerAccess: Optional[bool] = None, permissions: Optional[Dict[~KT, ~VT]] = None, roles: Optional[Iterable[ProjectMemberRole]] = None, developerAccess: Optional[bool] = None)

Replace Project Member Permissions.

accessToAllWorkflowSteps and permissions are deprecated by the API, use roles instead.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.members.put

def update_group_managers(self, group_id: int, request_data: Iterable[GroupManagerPatchRequest])

Inherited members

class ExternalQaChecksResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for External QA Checks.

Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/External-QA-Checks

Ancestors

Methods

def get_external_qa_check(self, externalQaCheckId: int)
def get_external_qa_checks_path(self, externalQaCheckId: Optional[int] = None)
def list_external_qa_checks(self, projectId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)

List External QA Checks.

:param projectId: Filter External QA Checks by Project Identifier

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.external-qa-checks.getMany

class FieldsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Ancestors

Methods

def add_field(self, name: str, slug: str, type: FieldType, entities: Iterable[FieldEntity], description: Optional[str] = None, config: Union[ListFieldConfig, NumberFieldConfig, OtherFieldConfig, None] = None)
def delete_field(self, fieldId: int)
def edit_field(self, fieldId: int, data: Iterable[FieldPatchRequest])
def get_field(self, fieldId: int)
def get_fields_path(self, fieldId: Optional[int] = None)
def list_fields(self, search: Optional[str] = None, entity: Optional[FieldEntity] = None, type: Optional[FieldType] = None, limit: Optional[int] = None, offset: Optional[int] = None)
class GlossariesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Glossaries.

Glossaries help to explain some specific terms or the ones often used in the project so that they can be properly and consistently translated.

Use API to manage glossaries or specific terms. Glossary export and import are asynchronous operations and shall be completed with sequence of API methods.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Glossaries

Ancestors

Methods

def add_glossary(self, name: str, languageId: str, isShared: Optional[bool] = None, groupId: Optional[int] = None)

Add Glossary.

:param isShared: Whether the glossary should be shared to all projects within the account (Crowdin) or within the group (Crowdin Enterprise). :param groupId: Group Identifier. If 0 – the glossary will be available for all projects and groups in the workspace. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.post

def add_term(self, glossaryId: int, languageId: str, text: str, description: Optional[str] = None, partOfSpeech: Optional[TermPartOfSpeech] = None, status: Optional[TermStatus] = None, type: Optional[TermType] = None, gender: Optional[TermGender] = None, note: Optional[str] = None, url: Optional[str] = None, conceptId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add Term.

:param conceptId: Defines whether to add translation to the existing term. If not specified, a new concept will be automatically created for the term. :param fields: Custom fields values. Keys get via List Fields. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.terms.post

def check_glossary_export_status(self, glossaryId: int, exportId: str)
def check_glossary_import_status(self, glossaryId: int, importId: str)
def clear_glossary(self, glossaryId: int, languageId: Optional[str] = None, conceptId: Optional[int] = None, translationOfTermId: Optional[int] = None)

Clear Glossary.

Without a filter every term is deleted.

:param translationOfTermId: Defines whether to delete specific term along with its translations.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.terms.deleteMany

def concordance_search_in_glossaries(self, sourceLanguageId: str, targetLanguageId: str, expressions: Iterable[str], projectId: Optional[int] = None)
def delete_concept(self, glossaryId: int, conceptId: int)
def delete_glossary(self, glossaryId: int)
def delete_term(self, glossaryId: int, termId: int)
def download_glossary(self, glossaryId: int, exportId: str)
def edit_glossary(self, glossaryId: int, data: Iterable[GlossaryPatchRequest])

Edit Glossary.

GlossaryPatchPath.GROUP_ID (/groupId) is Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.patch

def edit_term(self, glossaryId: int, termId: int, data: Iterable[TermPatchRequest])

Edit Term.

TermPatchPath.FIELDS (/fields) is Crowdin Enterprise only. A replace on /fields writes the whole set of custom field values.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.terms.patch

def export_glossary(self, glossaryId: int, data: Optional[GlossarySchemaRequest] = None)
def get_concept(self, glossaryId: int, conceptId: int)
def get_concepts_path(self, glossaryId: int, conceptId: Optional[int] = None)
def get_glossaries_path(self, glossaryId: Optional[int] = None)
def get_glossary(self, glossaryId: int)
def get_glossary_export_path(self, glossaryId: int, exportId: Optional[str] = None)
def get_term(self, glossaryId: int, termId: int)
def get_terms_path(self, glossaryId: int, termId: Optional[int] = None)
def import_glossary(self, glossaryId: int, storageId: int, scheme: Optional[Dict[~KT, ~VT]] = None, firstLineContainsHeader: Optional[bool] = None)
def list_concepts(self, glossaryId: int, orderBy: Optional[Sorting] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_glossaries(self, orderBy: Optional[Sorting] = None, groupId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, userId: Optional[int] = None, filter: Optional[str] = None)

List Glossaries.

:param groupId: Group Identifier. Set 0 to see glossaries of root group. Crowdin Enterprise only. :param userId: List user glossaries. Crowdin only. :param filter: Filter glossaries by name.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.getMany

def list_terms(self, glossaryId: int, orderBy: Optional[Sorting] = None, userId: Optional[int] = None, languageId: Optional[str] = None, conceptId: Optional[int] = None, croql: Optional[str] = None, offset: Optional[int] = None, limit: Optional[int] = None, translationOfTermId: Optional[int] = None)

List Terms.

:param translationOfTermId: Filter terms by termId. Use for terms that have translations. :param croql: Filter terms by CroQL. Can be used only with orderBy, offset and limit.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.terms.getMany

def update_concept(self, glossaryId: int, conceptId: int, languagesDetails: Optional[Iterable[LanguagesDetails]] = None, subject: Optional[str] = None, definition: Optional[str] = None, note: Optional[str] = None, url: Optional[str] = None, figure: Optional[str] = None, translatable: Optional[bool] = None, fields: Optional[Dict[str, Any]] = None)

Update Concept.

:param fields: Custom fields values. Keys get via List Fields. Writes the whole set of custom field values. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.glossaries.concepts.put

class GroupsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Groups.

Groups allow you to organize your projects based on specific characteristics. Using projects, you can keep your source files sorted.

Use API to manage projects and groups, change their settings, or remove them from organization if required.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Projects-and-Groups

Ancestors

Methods

def add_group(self, name: str, parentId: Optional[int] = None, description: Optional[str] = None, savingsReportSettingsTemplateId: Optional[int] = None)
def delete_group(self, groupId: int)
def edit_group(self, groupId: int, data: Iterable[GroupPatchRequest])
def get_group(self, groupId: int)
def get_groups_path(self, groupId: Optional[int] = None)
def list_groups(self, orderBy: Optional[Sorting] = None, parentId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None, filter: Optional[str] = None)

List Groups.

:param filter: Filter groups by name

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.groups.getMany

class LabelsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Labels.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Labels

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Labels

Ancestors

Methods

def add_label(self, title: str, projectId: Optional[int] = None)
def assign_label_to_screenshots(self, label_id: int, screenshot_ids: Union[int, Iterable[int]], project_id: Optional[int] = None)
def assign_label_to_strings(self, labelId: int, stringIds: Union[int, Iterable[int]], projectId: Optional[int] = None)
def delete_label(self, labelId: int, projectId: Optional[int] = None)
def edit_label(self, labelId: int, data: Iterable[LabelsPatchRequest], projectId: Optional[int] = None)
def get_label(self, labelId: int, projectId: Optional[int] = None)
def get_labels_path(self, projectId: int, labelId: Optional[int] = None)
def get_screenshots_path(self, project_id: int, label_id: int)
def list_labels(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, isSystem: Union[bool, int, None] = None)
def unassign_label_from_screenshots(self, label_id: int, screenshot_ids: Union[int, Iterable[int]], project_id: Optional[int] = None)

Unassign Label from Screenshots

screenshot_ids can be a single screenshot identifier or an iterable of them (up to 500 at a time).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.labels.screenshots.deleteMany https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.labels.screenshots.deleteMany

def unassign_label_from_strings(self, labelId: int, stringIds: Union[int, Iterable[int]], projectId: Optional[int] = None)

Unassign Label from Strings.

stringIds can be a single string identifier or an iterable of them (up to 500 at a time).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.labels.strings.deleteMany https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.labels.strings.deleteMany

class LanguagesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Languages.

Crowdin supports more than 300 world languages and custom languages created in the system.

Use API to get the list of all supported languages and retrieve additional details (e.g. text direction, internal code) on specific language.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Languages

Ancestors

Methods

def add_custom_language(self, name: str, code: str, localeCode: str, textDirection: LanguageTextDirection, pluralCategoryNames: Iterable[str], threeLettersCode: str, twoLettersCode: Optional[str] = None, dialectOf: Optional[str] = None)
def delete_custom_language(self, languageId: str)
def edit_custom_language(self, languageId: str, data: Iterable[LanguagesPatchRequest])
def get_language(self, languageId: str)
def get_languages_path(self, languageId: Optional[str] = None)
def list_supported_languages(self, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class MachineTranslationEnginesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Machine Translation Engines.

Machine Translation Engines (MTE) are the sources for pre-translations.

Use API to add, update, and delete specific MTE.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Machine-Translation-Engines

Ancestors

Subclasses

Methods

def get_mt(self, mtId: int)
def get_mts_path(self, mtId: Optional[int] = None)
def list_mts(self, limit: Optional[int] = None, offset: Optional[int] = None)
def translate_via_mt(self, mtId: int, targetLanguageId: str = None, languageRecognitionProvider: Optional[LanguageRecognitionProvider] = None, sourceLanguageId: Optional[str] = None, strings: Optional[Iterable[str]] = None)
class NotificationResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Notifications.

Available on both Crowdin and Crowdin Enterprise. send_notification_to_organization_members is Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Notifications

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Notifications

Ancestors

Methods

def send_notification_to_authenticated_user(self, message: str)

Send Notification to Authenticated User

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.notify.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.notify.post

def send_notification_to_organization_members(self, request_data: Union[ByUserIdsRequestScheme, ByOrganizationRoleRequestScheme])

Send Notification To Organization Members

Crowdin Enterprise only. Notify organization members by userIds or by role (owner or admin).

Link to documentation (Enterprise): https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.notify.post

def send_notification_to_project_members(self, request_data: Union[ByUserIdsRequestScheme, ByRoleRequestScehme], projectId: Optional[int] = None)
class OrganizationResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Organization.

Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Organization

Ancestors

Methods

def get_organization(self)
def get_organization_auth_settings(self)
def get_organization_path(self)
class OrganizationWebhooksResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Organization Webhooks.

Webhooks allow you to collect information about events that happen in your Crowdin account. You can select the request type, content type, and add a custom payload, which allows you to create integrations with other systems on your own.

You can configure webhooks for the following events:

  • project is created
  • project is deleted
  • group is created (Crowdin Enterprise only)
  • group is deleted (Crowdin Enterprise only)

Use API to create, modify, and delete specific webhooks.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Organization-Webhooks

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Organization-Webhooks

Ancestors

Class variables

var BASE_URL

Methods

def add_webhook(self, name: str, url: str, events: Iterable[OrganizationWebhookEvent], request_type: WebhookRequestType, is_active: Optional[bool] = None, batching_enabled: Optional[bool] = None, content_type: Optional[WebhookContentType] = None, headers: Optional[Dict[~KT, ~VT]] = None, payload: Optional[Dict[~KT, ~VT]] = None)

Add webhook For Enterprise please use method "add_webhook_enterprise"

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.webhooks.post

def add_webhook_enterprise(self, name: str, url: str, events: Iterable[EnterpriseOrgWebhookEvent], request_type: WebhookRequestType, is_active: Optional[bool] = None, batching_enabled: Optional[bool] = None, content_type: Optional[WebhookContentType] = None, headers: Optional[Dict[~KT, ~VT]] = None, payload: Optional[Dict[~KT, ~VT]] = None)

Add webhook (enterprise) Events list is different

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.webhooks.post

def delete_webhook(self, organization_webhook_id: int)
def edit_webhook(self, organization_webhook_id: int, data: Iterable[OrganizationWebhookPatchRequest])
def get_webhook(self, organization_webhook_id: int)
def get_webhooks_path(self, organization_webhook_id: int)
def list_webhooks(self, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class ProjectPlaceholdersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Project Placeholders.

Custom placeholders of the organization assigned to a project. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Placeholders

Ancestors

Methods

def add_project_placeholder(self, customPlaceholderId: int, projectId: Optional[int] = None, type: Optional[ProjectPlaceholderType] = None, index: Optional[int] = None, isBlocking: Optional[bool] = None, formats: Optional[Iterable[str]] = None)
def delete_project_placeholder(self, projectPlaceholderId: int, projectId: Optional[int] = None)
def edit_project_placeholder(self, projectPlaceholderId: int, data: Iterable[ProjectPlaceholderPatchRequest], projectId: Optional[int] = None)
def get_project_placeholder(self, projectPlaceholderId: int, projectId: Optional[int] = None)
def get_project_placeholders_path(self, projectId: int, projectPlaceholderId: Optional[int] = None)
def list_project_placeholders(self, projectId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)
class ProjectsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Storages.

Using projects, you can keep your source files sorted. Use API to manage projects, change their settings, or remove them if required.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Projects

Ancestors

Methods

def add_file_based_project(self, name: str, sourceLanguageId: str, type: Optional[ProjectType] = None, normalizePlaceholder: Optional[bool] = None, saveMetaInfoInSource: Optional[bool] = None, notificationSettings: Optional[NotificationSettings] = None, identifier: Optional[str] = None, targetLanguageIds: Optional[Iterable[str]] = None, visibility: Optional[ProjectVisibility] = None, languageAccessPolicy: Optional[ProjectLanguageAccessPolicy] = None, cname: Optional[str] = None, description: Optional[str] = None, translateDuplicates: Optional[ProjectTranslateDuplicates] = None, isMtAllowed: Optional[bool] = None, autoSubstitution: Optional[bool] = None, autoTranslateDialects: Optional[bool] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, defaultTmId: Optional[int] = None, defaultGlossaryId: Optional[int] = None, tmApprovedSuggestionsOnly: Optional[bool] = None, tagsDetection: Optional[ProjectTagsDetection] = None, taskBasedAccessControl: Optional[bool] = None, publicDownloads: Optional[bool] = None, hiddenStringsProofreadersAccess: Optional[bool] = None, useGlobalTm: Optional[bool] = None, showTmSuggestionsDialects: Optional[bool] = None, qaCheckIsActive: Optional[bool] = None, qaCheckCategories: Optional[QACheckCategories] = None, qaChecksIgnorableCategories: Optional[QAChecksIgnorableCategories] = None, languageMapping: Optional[Dict[~KT, ~VT]] = None, glossaryAccess: Optional[bool] = None, glossaryAccessOption: Optional[ProjectGlossaryAccessOption] = None, tmPreTranslate: Optional[TmPreTranslate] = None, mtPreTranslate: Optional[MtPreTranslate] = None, aiPreTranslate: Optional[AiPreTranslate] = None, preTranslationAiPromptId: Optional[int] = None, editorSuggestionAiPromptId: Optional[int] = None, qaCheckActionAiPromptId: Optional[int] = None, contextReviewAiPromptId: Optional[int] = None, savingsReportSettingsTemplateId: Optional[int] = None, assignedStyleGuides: Optional[Iterable[int]] = None, inContext: Optional[bool] = None, inContextProcessHiddenStrings: Optional[bool] = None, inContextPseudoLanguageId: Optional[str] = None, tmContextType: Optional[ProjectTmContextType] = None, groupId: Optional[int] = None, templateId: Optional[int] = None, steps: Optional[Iterable[WorkflowStepSettings]] = None, vendorId: Optional[int] = None, mtEngineId: Optional[int] = None, taskReviewerIds: Optional[Iterable[int]] = None, delayedWorkflowStart: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None, qaApprovalsCount: Optional[int] = None, customQaCheckIds: Optional[Iterable[int]] = None, externalQaCheckIds: Optional[Iterable[int]] = None, fields: Optional[Dict[str, Any]] = None, alignmentActionAiPromptId: Optional[int] = None)

Add Project(Files Based Project Form).

Crowdin only: identifier, visibility, languageAccessPolicy, cname, exportApprovedOnly, useGlobalTm, tmPreTranslate, mtPreTranslate, aiPreTranslate.

Crowdin Enterprise only: groupId, templateId, steps, vendorId, mtEngineId, taskReviewerIds, delayedWorkflowStart, exportWithMinApprovalsCount, exportStringsThatPassedWorkflow, qaApprovalsCount, customQaCheckIds, externalQaCheckIds, crowdin_api.api_resources.fields, alignmentActionAiPromptId.

Deprecated: glossaryAccess (use glossaryAccessOption instead) and preTranslationAiPromptId (use aiPreTranslate instead).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.post

def add_project(self, request_data: Dict[~KT, ~VT])
def add_project_file_format_settings(self, format: str, settings: Union[PropertyFileFormatSettings, XmlFileFormatSettings, SpecificFileFormatSettings, DocxFileFormatSettings, MediaWikiFileFormatSettings, TxtFileFormatSettings, OtherFileFormatSettings, MdFileFormatSettings, MdxFileFormatSettings, JsonFileFormatSettings, JavaScriptFileFormatSettings, StringCatalogFileFormatSettings, VdfFileFormatSettings, Dict[str, Any]], projectId: Optional[int] = None)
def add_project_strings_exporter_settings(self, format: str, settings: Union[AndroidStringsExporterSettings, MacOSXStringsExporterSettings, XliffStringsExporterSettings], projectId: Optional[int] = None)
def add_strings_based_project(self, name: str, sourceLanguageId: str, identifier: Optional[str] = None, type: Optional[ProjectType] = None, targetLanguageIds: Optional[Iterable[str]] = None, visibility: Optional[ProjectVisibility] = None, languageAccessPolicy: Optional[ProjectLanguageAccessPolicy] = None, cname: Optional[str] = None, description: Optional[str] = None, translateDuplicates: Optional[ProjectTranslateDuplicates] = None, isMtAllowed: Optional[bool] = None, autoSubstitution: Optional[bool] = None, autoTranslateDialects: Optional[bool] = None, publicDownloads: Optional[bool] = None, hiddenStringsProofreadersAccess: Optional[bool] = None, useGlobalTm: Optional[bool] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, inContextProcessHiddenStrings: Optional[bool] = None, inContextPseudoLanguageId: Optional[str] = None, qaCheckIsActive: Optional[bool] = None, qaCheckCategories: Optional[QACheckCategories] = None, qaChecksIgnorableCategories: Optional[QAChecksIgnorableCategories] = None, languageMapping: Optional[Dict[~KT, ~VT]] = None, glossaryAccess: Optional[bool] = None, notificationSettings: Optional[NotificationSettings] = None, defaultTmId: Optional[int] = None, defaultGlossaryId: Optional[int] = None, tmApprovedSuggestionsOnly: Optional[bool] = None, tagsDetection: Optional[ProjectTagsDetection] = None, taskBasedAccessControl: Optional[bool] = None, showTmSuggestionsDialects: Optional[bool] = None, normalizePlaceholder: Optional[bool] = None, glossaryAccessOption: Optional[ProjectGlossaryAccessOption] = None, tmPreTranslate: Optional[TmPreTranslate] = None, mtPreTranslate: Optional[MtPreTranslate] = None, aiPreTranslate: Optional[AiPreTranslate] = None, preTranslationAiPromptId: Optional[int] = None, editorSuggestionAiPromptId: Optional[int] = None, qaCheckActionAiPromptId: Optional[int] = None, contextReviewAiPromptId: Optional[int] = None, savingsReportSettingsTemplateId: Optional[int] = None, assignedStyleGuides: Optional[Iterable[int]] = None, inContext: Optional[bool] = None, groupId: Optional[int] = None, templateId: Optional[int] = None, steps: Optional[Iterable[WorkflowStepSettings]] = None, vendorId: Optional[int] = None, mtEngineId: Optional[int] = None, taskReviewerIds: Optional[Iterable[int]] = None, delayedWorkflowStart: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None, qaApprovalsCount: Optional[int] = None, customQaCheckIds: Optional[Iterable[int]] = None, externalQaCheckIds: Optional[Iterable[int]] = None, fields: Optional[Dict[str, Any]] = None, alignmentActionAiPromptId: Optional[int] = None)

Add Project(Strings Based Project Form).

Crowdin only: identifier, visibility, languageAccessPolicy, cname, exportApprovedOnly, useGlobalTm, tmPreTranslate, mtPreTranslate, aiPreTranslate.

Crowdin Enterprise only: groupId, templateId, steps, vendorId, mtEngineId, taskReviewerIds, delayedWorkflowStart, exportWithMinApprovalsCount, exportStringsThatPassedWorkflow, qaApprovalsCount, customQaCheckIds, externalQaCheckIds, crowdin_api.api_resources.fields, alignmentActionAiPromptId.

Deprecated: glossaryAccess (use glossaryAccessOption instead) and preTranslationAiPromptId (use aiPreTranslate instead).

Link to documentation: https://support.crowdin.com/developer/api/v2/string-based/#operation/api.projects.post

def delete_project(self, projectId: Optional[int] = None)
def delete_project_file_format_settings(self, fileFormatSettingsId: int, projectId: Optional[int] = None)
def delete_project_strings_exporter_settings(self, systemStringExporterSettingsId: int, projectId: Optional[int] = None)
def download_project_file_custom_segmentation(self, fileFormatSettingsId: int, projectId: Optional[int] = None)

Download Project File Format Settings Custom Segmentation.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.file-format-settings.custom-segmentations.get

def edit_project(self, data: Iterable[ProjectPatchRequest], projectId: Optional[int] = None)

Edit Project.

See ProjectPatchPath for the available paths, including the Crowdin Enterprise only and file-based only ones.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.patch

def edit_project_file_format_settings(self, fileFormatSettingsId: int, data: Iterable[ProjectFilePatchRequest], projectId: Optional[int] = None)
def edit_project_strings_exporter_settings(self, systemStringExporterSettingsId: int, format: Optional[str] = None, settings: Union[AndroidStringsExporterSettings, MacOSXStringsExporterSettings, XliffStringsExporterSettings, None] = None, projectId: Optional[int] = None, data: Optional[Iterable[StringsExporterSettingsPatchRequest]] = None)

Edit Project Strings Exporter Settings.

The API expects a JSON Patch document. Pass it via data, or pass format and/or settings and they will be sent as replace operations on /format and /settings.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.strings-exporter-settings.patch

def get_project(self, projectId: Optional[int] = None)
def get_project_file_format_settings(self, fileFormatSettingsId: int, projectId: Optional[int] = None)
def get_project_file_format_settings_path(self, projectId: int, fileFormatSettingsId: Optional[int] = None)
def get_project_strings_exporter_settings(self, systemStringExporterSettingsId: int, projectId: Optional[int] = None)
def get_projects_path(self, projectId: Optional[int] = None)
def get_strings_exporter_path(self, projectId: int, systemStringExporterSettingsId: Optional[int] = None)
def list_project_file_format_settings(self, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_project_strings_exporter_settings(self, projectId: Optional[int] = None)
def list_projects(self, orderBy: Optional[Sorting] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, groupId: Optional[int] = None, userId: Union[int, str, None] = None, hasManagerAccess: Optional[HasManagerAccess] = None, type: Optional[ProjectType] = None, filter: Optional[str] = None)

List Projects.

Note: groupId is supported by Crowdin Enterprise only, userId and type by Crowdin only. filter filters projects by name.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.getMany

def reset_project_file_custom_segmentation(self, fileFormatSettingsId: int, projectId: Optional[int] = None)

Reset Project File Format Settings Custom Segmentation.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.file-format-settings.custom-segmentations.delete

class ReportsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Reports.

Reports help to estimate costs, calculate translation costs, and identify the top members.

Use API to generate Cost Estimate, Translation Cost, and Top Members reports. You can then export reports in .xlsx or .csv file formats. Report generation is an asynchronous operation and shall be completed with a sequence of API methods.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Reports

Ancestors

Methods

def check_report_archive_export_status(self, userId: int, archiveId: int, exportId: str)
def delete_report_archive(self, userId: int, archiveId: int)
def download_report_archive(self, userId: int, archiveId: int, exportId: str)
def export_report_archive(self, userId: int, archiveId: int, format: Optional[ExportFormat] = None)
def generate_fuzzy_cost_estimate_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, languageId: Optional[str] = None, fileIds: Optional[Iterable[int]] = None, format: Optional[Format] = Format.XLSX, calculateInternalFuzzyMatches: Optional[bool] = None, regularRates: Optional[Iterable[FuzzyRegularRate]] = None, individualRates: Optional[Iterable[FuzzyIndividualRate]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Cost Estimate Fuzzy Mode).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.reports.post

def generate_fuzzy_translation_cost_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = Format.XLSX, groupBy: Optional[GroupBy] = None, regularRates: Optional[Iterable[FuzzyRegularRate]] = None, individualRates: Optional[Iterable[FuzzyIndividualRate]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Translation Fuzzy Cost).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.reports.post

def generate_simple_cost_estimate_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, languageId: Optional[str] = None, fileIds: Optional[Iterable[int]] = None, format: Optional[Format] = Format.XLSX, regularRates: Optional[Iterable[SimpleRegularRate]] = None, individualRates: Optional[Iterable[SimpleIndividualRate]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Cost Estimate Schema).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.reports.post

def generate_simple_translation_cost_report(self, projectId: Optional[int] = None, unit: Optional[Unit] = None, currency: Optional[Currency] = None, format: Optional[Format] = Format.XLSX, groupBy: Optional[GroupBy] = None, regularRates: Optional[Iterable[SimpleRegularRate]] = None, individualRates: Optional[Iterable[SimpleIndividualRate]] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Generate Report(Translation Cost).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.reports.post

def get_report_archive(self, userId: int, archiveId: int)
def get_report_archive_export_path(self, userId: int, archiveId: int, exportId: Optional[str] = None)
def get_report_archive_path(self, userId: int, archiveId: Optional[int] = None)
def list_report_archives(self, userId: int, scopeType: Optional[str] = None, scopeId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None, taskId: Optional[int] = None, name: Optional[str] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None)

Inherited members

class ScreenshotsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Screenshots.

Screenshots provide translators with additional context for the source strings. Screenshot tags allow specifying which source strings are displayed on each screenshot.

Use API to manage screenshots and their tags.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Screenshots

Ancestors

Methods

def add_screenshot(self, storageId: int, name: str, projectId: Optional[int] = None, autoTag: Optional[bool] = None, fileId: Optional[int] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, labelIds: Optional[Iterable[int]] = None)

Add Screenshot.

:param fileId: File Identifier (file-based projects only). :param directoryId: Directory Identifier (file-based projects only).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.screenshots.post

def add_tag(self, screenshotId: int, data: Iterable[AddTagRequest], projectId: Optional[int] = None)
def auto_tag(self, screenshotId: int, autoTag: bool, projectId: Optional[int] = None, fileId: Optional[int] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None)

Auto Tag.

:param fileId: Limit auto tagging to strings of this file (file-based projects only). :param branchId: Limit auto tagging to strings of this branch. :param directoryId: Limit auto tagging to strings of this directory (file-based projects only).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.screenshots.tags.putMany

def clear_tags(self, screenshotId: int, projectId: Optional[int] = None)
def delete_screenshot(self, screenshotId: int, projectId: Optional[int] = None)
def delete_tag(self, screenshotId: int, tagId: int, projectId: Optional[int] = None)
def edit_screenshot(self, screenshotId: int, data: Iterable[ScreenshotPatchRequest], projectId: Optional[int] = None)
def edit_tag(self, screenshotId: int, tagId: int, data: Iterable[TagPatchRequest], projectId: Optional[int] = None)
def get_screenshot(self, screenshotId: int, projectId: Optional[int] = None)
def get_screenshots_path(self, projectId: int, screenshotId: Optional[int] = None)
def get_tag(self, screenshotId: int, tagId: int, projectId: Optional[int] = None)
def get_tags_path(self, projectId: int, screenshotId: int, tagId: Optional[int] = None)
def list_screenshots(self, orderBy: Optional[Sorting] = None, projectId: Optional[int] = None, stringId: Optional[int] = None, stringIds: Optional[Iterable[int]] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, search: Optional[str] = None)

List Screenshots.

:param search: Search screenshots by name, tagged strings or file names that include screenshots.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.screenshots.getMany

def list_tags(self, screenshotId: int, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def replace_tags(self, screenshotId: int, data: Iterable[AddTagRequest], projectId: Optional[int] = None)
def update_screenshot(self, screenshotId: int, storageId: int, name: str, projectId: Optional[int] = None, usePreviousTags: Optional[bool] = None)

Update Screenshot.

:param usePreviousTags: Defines whether to keep the tags of the previous screenshot version (the API default is True).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.screenshots.put

class SecurityLogsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Ancestors

Methods

def get_organization_security_log(self, securityLogId: int)
def get_organization_security_logs_path(self, securityLogId: Optional[int] = None)
def get_user_security_log(self, userId: int, securityLogId: int)
def get_user_security_logs_path(self, userId: int, securityLogId: Optional[int] = None)
def list_organization_security_logs(self, event: Optional[SecurityLogEvent] = None, createdAfter: Optional[datetime.datetime] = None, createdBefore: Optional[datetime.datetime] = None, ipAddress: Optional[str] = None, userId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None, page: Optional[int] = None)
def list_user_security_logs(self, userId: int, event: Optional[SecurityLogEvent] = None, createdAfter: Optional[datetime.datetime] = None, createdBefore: Optional[datetime.datetime] = None, ipAddress: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None, page: Optional[int] = None)
class SourceFilesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Source Files.

Source files are resources for translation. You can keep files structure using folders or manage different versions of the content via branches.

Use API to keep the source files up to date, check on file revisions, and manage project branches. Before adding source files to the project, upload each file to the Storage first.

Note: If you use branches, make sure your master branch is the first one you integrate with Crowdin.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Source-Files

Ancestors

Methods

def add_asset_reference(self, project_id: int, file_id: int, storage_id: int, name: str)
def add_branch(self, name: str, projectId: Optional[int] = None, title: Optional[str] = None, exportPattern: Optional[str] = None, priority: Optional[Priority] = None, isProtected: Optional[bool] = None)

Add Branch.

exportPattern and priority are for file-based projects only, isProtected is for string-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.branches.post

def add_directory(self, name: str, projectId: Optional[int] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, title: Optional[str] = None, exportPattern: Optional[str] = None, priority: Optional[Priority] = None)
def add_file(self, storageId: int, name: str, projectId: Optional[int] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, title: Optional[str] = None, context: Optional[str] = None, type: Optional[FileType] = FileType.AUTO, importOptions: Union[SpreadsheetImportOptions, XmlImportOptions, WebXmlFileImportOptions, DocxFileImportOptions, VsdxFileImportOptions, IdmlFileImportOptions, HtmlFileImportOptions, HtmlWithFrontMatterFileImportOptions, MdFileImportOptions, MdxV1FileImportOptions, MdxV2FileImportOptions, StringCatalogFileImportOptions, AdocFileImportOptions, VdfFileImportOptions, OtherImportOptions, None] = None, exportOptions: Union[GeneralExportOptions, PropertyExportOptions, JavascriptExportOptions, MdFileExportOptions, MdxFileExportOptions, DocxFileExportOptions, None] = None, excludedTargetLanguages: Optional[Iterable[str]] = None, attachLabelIds: Optional[Iterable[int]] = None, parserVersion: Optional[int] = None, fields: Optional[Dict[str, Union[str, int, bool, Iterable[str]]]] = None)

Add File.

parserVersion must be used together with type. crowdin_api.api_resources.fields is Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.files.post

def check_branch_deletion_status(self, branchId: int, jobIdentifier: str, projectId: Optional[int] = None)
def check_directory_deletion_status(self, directoryId: int, jobIdentifier: str, projectId: Optional[int] = None)
def check_file_deletion_status(self, fileId: int, jobIdentifier: str, projectId: Optional[int] = None)
def delete_asset_reference(self, project_id: int, file_id: int, reference_id: int)
def delete_branch(self, branchId: int, projectId: Optional[int] = None, prefer: Optional[str] = None)

Delete Branch.

Pass prefer="respond-async" to delete the branch asynchronously (recommended); the API then returns a job to poll via check_branch_deletion_status.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.branches.delete

def delete_directory(self, directoryId: int, projectId: Optional[int] = None, prefer: Optional[str] = None)

Delete Directory.

Pass prefer="respond-async" to delete the directory asynchronously (recommended); the API then returns a job to poll via check_directory_deletion_status.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.directories.delete

def delete_file(self, fileId: int, projectId: Optional[int] = None, prefer: Optional[str] = None)

Delete File.

Pass prefer="respond-async" to delete the file asynchronously (recommended); the API then returns a job to poll via check_file_deletion_status.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.files.delete

def download_file(self, fileId: int, projectId: Optional[int] = None)
def download_file_preview(self, fileId: int, projectId: Optional[int] = None)
def edit_branch(self, branchId: int, data: Iterable[BranchPatchRequest], projectId: Optional[int] = None)

Edit Branch.

/exportPattern is for file-based projects only, /isProtected is for string-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.branches.patch

def edit_directory(self, directoryId: int, data: Iterable[DirectoryPatchRequest], projectId: Optional[int] = None)
def edit_file(self, fileId: int, data: Iterable[FilePatchRequest], projectId: Optional[int] = None)

Edit File.

/fields and /fields/{fieldSlug} paths are Enterprise only. For /fields/{fieldSlug} pass the path as a string, e.g. "/fields/some-field".

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.files.patch

def get_asset_reference(self, project_id: int, file_id: int, reference_id: int)
def get_asset_references_path(self, project_id: int, file_id: int, reference_id: Optional[int] = None)
def get_branch(self, branchId: int, projectId: Optional[int] = None)
def get_branch_path(self, projectId: int, branchId: Optional[int] = None)
def get_directory(self, directoryId: int, projectId: Optional[int] = None)
def get_directory_path(self, projectId: int, directoryId: Optional[int] = None)
def get_file(self, fileId: int, projectId: Optional[int] = None)
def get_file_path(self, projectId: int, fileId: Optional[int] = None)
def get_file_revision(self, fileId: int, revisionId: int, projectId: Optional[int] = None)
def get_file_revisions_path(self, projectId: int, fileId: int, revisionId: Optional[int] = None)
def list_asset_references(self, project_id: int, file_id: int, limit: Optional[int] = None, offset: Optional[int] = None)
def list_directories(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, filter: Optional[str] = None, recursion=None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_file_revisions(self, fileId: int, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_files(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, filter: Optional[str] = None, recursion: Any = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_project_branches(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, name: Optional[str] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def restore_file(self, fileId: int, revisionId: int, projectId: Optional[int] = None)

Restore File.

Restore the file to one of the previous revisions.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.files.put

def search_branches(self, filter: str, projectIds: Optional[Iterable[int]] = None, userId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def search_directories(self, filter: str, projectIds: Optional[Iterable[int]] = None, userId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def search_files(self, filter: str, projectIds: Optional[Iterable[int]] = None, userId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def update_file(self, fileId: int, storageId: int, projectId: Optional[int] = None, updateOption: Optional[FileUpdateOption] = None, importOptions: Union[SpreadsheetImportOptions, XmlImportOptions, WebXmlFileImportOptions, DocxFileImportOptions, VsdxFileImportOptions, IdmlFileImportOptions, HtmlFileImportOptions, HtmlWithFrontMatterFileImportOptions, MdFileImportOptions, MdxV1FileImportOptions, MdxV2FileImportOptions, StringCatalogFileImportOptions, AdocFileImportOptions, VdfFileImportOptions, OtherImportOptions, None] = None, exportOptions: Union[GeneralExportOptions, PropertyExportOptions, JavascriptExportOptions, MdFileExportOptions, MdxFileExportOptions, DocxFileExportOptions, None] = None, attachLabelIds: Optional[Iterable[int]] = None, detachLabelIds: Optional[Iterable[int]] = None, name: Optional[str] = None, replaceModifiedContext: Optional[bool] = None)

Update File.

Replace the file with a new one from the Storage. importOptions is sent to the API as-is (e.g. {"importTranslations": True} for spreadsheet files). Note that importOptions.importTranslations in the API response for spreadsheet files is marked as deprecated by the API and may not reflect the value sent in the request.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.files.put

class SourceStringsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Source Strings.

Source strings are the text units for translation. Instead of modifying source files, you can manage source strings one by one.

Use API to add, edit, or delete some specific strings in the source-based and files-based projects (available only for the following file formats: CSV, RESX, JSON, Android XML, iOS strings, PROPERTIES, XLIFF).

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Source-Strings

Ancestors

Subclasses

Methods

def add_string(self, text: Union[str, Dict[str, str]], projectId: Optional[int] = None, identifier: Optional[str] = None, fileId: Optional[int] = None, context: Optional[str] = None, isHidden: Optional[bool] = None, maxLength: Optional[int] = None, labelIds: Optional[Iterable[int]] = None, branchId: Optional[int] = None, fields: Optional[Dict[str, Any]] = None)

Add String.

:param text: Text for translation. Use a dict (e.g. {"one": "…", "other": "…"}) for plural strings. :param fileId: File Identifier (file-based projects only). :param branchId: Branch Identifier (string-based projects only). :param fields: Fields values, keys get via List Fields (Crowdin Enterprise only).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.strings.post

def delete_string(self, stringId: int, projectId: Optional[int] = None)
def edit_string(self, stringId: int, data: Iterable[SourceStringsPatchRequest], projectId: Optional[int] = None, updateOption: Optional[StringUpdateOption] = None)

Edit String.

:param updateOption: Defines whether to keep existing translations and approvals for the updated string. Applied only when text or identifier is changed.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.strings.patch

def get_source_strings_path(self, projectId: int, stringId: Optional[int] = None)
def get_string(self, stringId: int, projectId: Optional[int] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None)
def get_strings_uploads_path(self, projectId: int, uploadId: Optional[str] = None)
def list_strings(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, fileId: Optional[int] = None, branchId: Optional[int] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None, labelIds: Optional[Iterable[int]] = None, taskId: Optional[int] = None, croql: Optional[str] = None, filter: Optional[str] = None, scope: Optional[ScopeFilter] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, directoryId: Optional[int] = None)

List Strings.

:param directoryId: Directory Identifier (file-based projects only). Can't be used with taskId, fileId or branchId in the same request.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.strings.getMany

def search_strings(self, filter: str, projectIds: Optional[Iterable[int]] = None, userId: Optional[int] = None, scope: Optional[ScopeFilter] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def string_batch_operation(self, data: Iterable[StringBatchOperationPatchRequest], projectId: Optional[int] = None, updateOption: Optional[StringUpdateOption] = None)

String Batch Operations.

:param updateOption: Defines whether to keep existing translations and approvals for updated strings. Applied only when text or identifier is changed.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.strings.batchPatch

def upload_strings(self, storageId: int, branchId: int, projectId: Optional[int] = None, type: Optional[UploadStringsType] = None, parserVersion: Optional[int] = None, labelIds: Optional[Iterable[int]] = None, updateStrings: Optional[bool] = None, cleanupMode: Optional[bool] = None, importOptions: Union[UploadStringsSpreadsheetImportOptions, UploadStringsStringCatalogImportOptions, UploadStringsOtherImportOptions, None] = None, updateOption: Optional[StringUpdateOption] = None)
def upload_strings_status(self, uploadId: str, projectId: Optional[int] = None)
class StoragesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Storages.

Storage is a separate container for each file. You need to use Add Storage method before adding files to your projects via API. Files that should be uploaded into storage include files for localization, screenshots, Glossaries, and Translation Memories.

Storage id is the identifier of the file uploaded to the Storage.

Note: Storage is periodically cleared. The files that were already uploaded to your account will be removed from storage and will remain in your account.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Storage

Ancestors

Methods

def add_storage(self, file: )
def delete_storage(self, storageId: int)
def get_storage(self, storageId: int)
def get_storages_path(self, storageId: Optional[int] = None)
def list_storages(self, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class StringCommentsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for String Comments.

Use API to add or remove strings translations, approvals, and votes.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/String-Comments

Ancestors

Methods

def add_string_comment(self, text: str, stringId: Optional[int] = None, targetLanguageId: Optional[str] = None, type: Optional[StringCommentType] = None, projectId: Optional[int] = None, issueType: Optional[StringCommentIssueType] = None, attachments: Optional[Iterable[Union[int, Dict[str, int]]]] = None, fileId: Optional[int] = None, isShared: Optional[bool] = None)

Add String Comment.

:param stringId: String Identifier. Required unless fileId is used. :param type: Comment type (comment or issue). Required by the API. :param attachments: Storage Identifiers (or {"id": storageId} objects) of attachments. :param fileId: Asset File Identifier, used instead of stringId to comment an asset (file-based projects only). :param isShared: Defines shared comment or issue (Crowdin Enterprise only).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.comments.post

def delete_string_comment(self, stringCommentId: int, projectId: Optional[int] = None)
def delete_string_comment_attachment(self, stringCommentId: int, attachmentId: int, projectId: Optional[int] = None)
def edit_string_comment(self, stringCommentId: int, data: Iterable[StringCommentPatchRequest], projectId: Optional[int] = None)
def get_string_comment(self, stringCommentId: int, projectId: Optional[int] = None)
def get_string_comments_path(self, projectId: int, stringCommentId: Optional[int] = None)
def list_string_comments(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, stringId: Optional[int] = None, type: Optional[StringCommentType] = None, issueType: Optional[Iterable[StringCommentIssueType]] = None, issueStatus: Optional[StringCommentIssueStatus] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, fileId: Optional[int] = None)

List String Comments.

:param stringId: Filter comments by string. Can't be used together with fileId. :param fileId: Filter comments by asset file (file-based projects only). Can't be used together with stringId.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.comments.getMany

def string_comment_batch_operations(self, project_id: int, data: Iterable[StringCommentBatchOpPatchRequest])
class StringCorrectionsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for String Corrections (Crowdin Enterprise only).

Use API to list, add, get, restore, and delete source string corrections proposed during proofreading.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/String-Corrections

Ancestors

Methods

def add_correction(self, project_id: int, string_id: int, text: str, plural_category_name: Optional[PluralCategoryName] = None)
def delete_correction(self, project_id: int, correction_id: int)
def delete_corrections(self, project_id: int, string_id: int)
def get_correction(self, project_id: int, correction_id: int, denormalize_placeholders: Optional[DenormalizePlaceholders] = None)
def get_string_corrections_path(self, project_id: int, correction_id: Optional[int] = None)
def list_corrections(self, project_id: int, string_id: int, limit: Optional[int] = None, offset: Optional[int] = None, order_by: Optional[Sorting] = None, denormalize_placeholders: Optional[DenormalizePlaceholders] = None)
def restore_correction(self, project_id: int, correction_id: int)
class StringTranslationsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for String Translations.

Use API to add or remove strings translations, approvals, and votes.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/String-Translations

Ancestors

Methods

def add_approval(self, translationId: Optional[int] = None, projectId: Optional[int] = None, correctionId: Optional[int] = None)

Add Approval.

Pass either translationId or correctionId (Crowdin Enterprise only).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.approvals.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.approvals.post

def add_file_translations(self, fileId: int, languageId: str, storageId: int, projectId: Optional[int] = None)

Add Translation (upload translations of a file from storage).

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.post

def add_translation(self, stringId: int, languageId: str, text: str, projectId: Optional[int] = None, pluralCategoryName: Optional[PluralCategoryName] = None, addToTm: Optional[bool] = None, provider: Optional[TranslationProvider] = None, providerId: Optional[int] = None, isPreTranslated: Optional[bool] = None)

Add Translation.

provider is required when providerId or isPreTranslated is specified.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.post

def add_vote(self, mark: VoteMark, translationId: int, projectId: Optional[int] = None)
def approval_batch_operations(self, project_id: int, data: Iterable[ApprovalBatchOpPatchRequest])
def cancel_vote(self, voteId: int, projectId: Optional[int] = None)
def delete_string_translations(self, stringId: Optional[int] = None, languageId: Optional[str] = None, projectId: Optional[int] = None, fileId: Optional[int] = None)

Delete String Translations.

Delete translations of a string (stringId) or of all strings in a file (fileId, file-based projects only). stringId is required in string-based projects.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.deleteMany

def delete_translation(self, translationId: int, projectId: Optional[int] = None)
def get_approval(self, approvalId: int, projectId: Optional[int] = None)
def get_approvals_path(self, projectId: int, approvalId: Optional[int] = None)
def get_translation(self, translationId: int, projectId: Optional[int] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None)
def get_translation_votes_path(self, projectId: int, voteId: Optional[int] = None)
def get_translations_path(self, projectId: int, translationId: Optional[int] = None)
def get_vote(self, voteId: int, projectId: Optional[int] = None)
def list_language_translations(self, languageId: str, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, stringIds: Optional[Iterable[int]] = None, labelIds: Optional[Iterable[int]] = None, fileId: Optional[int] = None, branchId: Optional[int] = None, directoryId: Optional[int] = None, croql: Optional[str] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, approvedOnly: Union[bool, int, None] = None, passedWorkflow: Union[bool, int, None] = None, minApprovalCount: Optional[int] = None)

List Language Translations

fileId and directoryId are available in file-based projects only. orderBy and approvedOnly are available in Crowdin only; passedWorkflow and minApprovalCount in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.languages.translations.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.languages.translations.getMany

def list_string_translations(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, stringId: Optional[int] = None, languageId: Optional[str] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, fileId: Optional[int] = None)

List String Translations

languageId is required by the API. fileId is available in file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.getMany

def list_translation_approvals(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, fileId: Optional[int] = None, labelIds: Optional[str] = None, excludeLabelIds: Optional[str] = None, stringId: Optional[int] = None, languageId: Optional[str] = None, translationId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, correctionId: Optional[int] = None)

List Translation Approvals

fileId is available in file-based projects only, correctionId in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.approvals.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.approvals.getMany

def list_translation_votes(self, projectId: Optional[int] = None, stringId: Optional[int] = None, languageId: Optional[str] = None, translationId: Optional[int] = None, fileId: Optional[int] = None, labelIds: Optional[str] = None, excludeLabelIds: Optional[str] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Translation Votes

fileId is available in file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.votes.getMany

def remove_approval(self, approvalId: int, projectId: Optional[int] = None)
def remove_string_approvals(self, stringId: Optional[int] = None, projectId: Optional[int] = None, fileId: Optional[int] = None)

Remove String Approvals

Remove approvals of a string (stringId) or of all strings in a file (fileId, file-based projects only). stringId is required in string-based projects.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/String-Translations/operation/api.projects.approvals.deleteMany

def restore_translation(self, translationId: int, projectId: Optional[int] = None)
def search_translations(self, filter: str, projectIds: Optional[Iterable[int]] = None, userId: Optional[int] = None, languageIds: Optional[Iterable[str]] = None, denormalizePlaceholders: Optional[DenormalizePlaceholders] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def translation_alignment(self, sourceLanguageId: str, targetLanguageId: str, text: str, projectId: Optional[int] = None)
def translation_batch_operations(self, project_id: int, data: Iterable[TranslationBatchOpPatchRequest])
class StyleGuidesResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Style Guides.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Style-Guides

Ancestors

Methods

def add_style_guide(self, request_data: AddStyleGuideRequest)

Create Style Guide

Note: groupId in request data is supported by Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.style-guides.post

def delete_style_guide(self, style_guide_id: int)
def edit_style_guide(self, style_guide_id: int, request_data: Iterable[StyleGuidePatchRequest])

Edit Style Guide

Note: the /groupId patch path is supported by Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.style-guides.patch

def get_style_guide(self, style_guide_id: int)
def get_style_guides_path(self, style_guide_id: Optional[int] = None)
def list_style_guides(self, order_by: Optional[Sorting] = None, user_id: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)
class SystemPlaceholdersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Project System Placeholders.

System placeholders are the placeholders Crowdin ships. Each project can turn them on and off.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Placeholders

Ancestors

Methods

def get_system_placeholders_path(self, projectId: int)
def list_system_placeholders(self, projectId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def system_placeholders_batch_operations(self, data: Iterable[SystemPlaceholderPatchRequest], projectId: Optional[int] = None)
class TasksResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Tasks.

Create and assign tasks to get files translated or proofread by specific people. You can set the due dates, split words between people, and receive notifications about the changes and updates on tasks. Tasks are project-specific, so you’ll have to create them within a project.

Use API to create, modify, and delete specific tasks.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Tasks

Ancestors

Subclasses

Methods

def add_general_by_string_ids_task(self, title: str, languageId: str, stringIds: Iterable[int], type: CrowdinGeneralTaskType, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, splitContent: Optional[bool] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, batchId: Optional[int] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None)

Add Task(Crowdin Task Create Form, Create By String Ids Form).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def add_general_task(self, title: str, languageId: str, fileIds: Optional[Iterable[int]], type: CrowdinGeneralTaskType, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, splitContent: Optional[bool] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, deadline: Optional[datetime.datetime] = None, startedAt: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, batchId: Optional[int] = None, directoryIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, excludeLabelMatchRule: Optional[TaskLabelMatchRule] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None)

Add Task(Crowdin Task Create Form, Create By Source Ids Form).

One of fileIds, directoryIds or branchIds is required (pass fileIds=None when using directoryIds or branchIds). fileIds and directoryIds are file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def add_pending_task(self, title: str, precedingTaskId: int, projectId: Optional[int] = None, description: Optional[str] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, deadline: Optional[datetime.datetime] = None)

Add Task(Crowdin Pending Task Create Form).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def add_task(self, request_data: Dict[~KT, ~VT], projectId: Optional[int] = None)
def add_task_comment(self, text: str, taskId: int, projectId: Optional[int] = None, timeSpent: Optional[int] = None)

Add Task Comment.

timeSpent is the time spent on the task, in seconds.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.comments.post

def add_task_settings_template(self, name: str, config: TaskSettingsTemplateLanguages, projectId: Optional[int] = None)
def add_vendor_by_string_ids_task(self, title: str, languageId: str, stringIds: Iterable[int], type: CrowdinTaskType, vendor: str, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, deadline: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, labelIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, excludeLabelIds: Optional[Iterable[int]] = None, excludeLabelMatchRule: Optional[TaskLabelMatchRule] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None)

Add Task(Crowdin Vendor Task Create Form, Create By String Ids Form).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def add_vendor_pending_task(self, title: str, precedingTaskId: int, vendor: str, projectId: Optional[int] = None, description: Optional[str] = None, assignees: Optional[Iterable[CrowdinTaskAssignee]] = None, deadline: Optional[datetime.datetime] = None)

Add Task(Crowdin Vendor Pending Task Create Form).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def add_vendor_task(self, title: str, languageId: str, fileIds: Optional[Iterable[int]], type: CrowdinTaskType, vendor: str, projectId: Optional[int] = None, status: Optional[CrowdinTaskStatus] = None, description: Optional[str] = None, skipAssignedStrings: Optional[bool] = None, includePreTranslatedStringsOnly: Optional[bool] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, deadline: Optional[datetime.datetime] = None, dateFrom: Optional[datetime.datetime] = None, dateTo: Optional[datetime.datetime] = None, directoryIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, labelMatchRule: Optional[TaskLabelMatchRule] = None, excludeLabelMatchRule: Optional[TaskLabelMatchRule] = None, translationsUpdatedDateFrom: Optional[datetime.datetime] = None, translationsUpdatedDateTo: Optional[datetime.datetime] = None, generateCostEstimate: Optional[bool] = None, generateTranslationCost: Optional[bool] = None, reportSettingsTemplateId: Optional[int] = None)

Add Task(Crowdin Vendor Task Create Form, Create By Source Ids Form).

One of fileIds, directoryIds or branchIds is required (pass fileIds=None when using directoryIds or branchIds). fileIds and directoryIds are file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.post

def delete_task(self, taskId: int, projectId: Optional[int] = None)
def delete_task_comment(self, taskCommentId: int, taskId: int, projectId: Optional[int] = None)
def delete_task_settings_template(self, taskSettingsTemplateId: int, projectId: Optional[int] = None)
def edit_task(self, taskId: int, data: Union[Iterable[VendorPatchRequest], Iterable[TaskPatchRequest], Iterable[PendingTaskPatchRequest], Iterable[VendorPendingTaskPatchRequest]], projectId: Optional[int] = None)

Edit Task.

The /splitFiles patch path is deprecated, use /splitContent instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.patch

def edit_task_archived_status(self, taskId: int, isArchived: bool = True, projectId: Optional[int] = None)
def edit_task_comment(self, taskCommentId: int, data: Iterable[TaskCommentPatchRequest], taskId: int, projectId: Optional[int] = None)

Edit Task Comment.

Supported patch paths: /text and /timeSpent (see TaskCommentPatchPath).

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.comments.patch

def edit_task_settings_template(self, taskSettingsTemplateId: int, data: Iterable[ConfigPatchRequest], projectId: Optional[int] = None)
def export_task_strings(self, taskId: int, projectId: Optional[int] = None)
def get_task(self, taskId: int, projectId: Optional[int] = None)
def get_task_comment(self, taskCommentId: int, taskId: int, projectId: Optional[int] = None)
def get_task_comments_path(self, projectId: int, taskId: int, taskCommentId: Optional[int] = None)
def get_task_settings_template(self, taskSettingsTemplateId: int, projectId: Optional[int] = None)
def get_task_settings_templates_path(self, projectId: int, taskSettingsTemplateId: Optional[int] = None)
def get_tasks_path(self, projectId: int, taskId: Optional[int] = None)
def list_specific_user_tasks(self, userId: int, orderBy: Optional[Sorting] = None, status: Union[CrowdinTaskStatus, Iterable[CrowdinTaskStatus], None] = None, type: Union[CrowdinTaskType, Iterable[CrowdinTaskType], None] = None, projectIds: Optional[Iterable[int]] = None, assigneeIds: Optional[Iterable[int]] = None, creatorIds: Optional[Iterable[int]] = None, targetLanguageIds: Optional[Iterable[str]] = None, sourceLanguageIds: Optional[Iterable[str]] = None, createdAtFrom: Optional[datetime.datetime] = None, createdAtTo: Optional[datetime.datetime] = None, deadlineFrom: Optional[datetime.datetime] = None, deadlineTo: Optional[datetime.datetime] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List User Tasks (all of the specified user's project tasks).

Crowdin only. status and type can be a single value or a list of values.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.users.tasks.getMany

def list_task_comments(self, taskId: int, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_task_settings_templates(self, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_tasks(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, assigneeId: Optional[int] = None, status: Union[CrowdinTaskStatus, Iterable[CrowdinTaskStatus], None] = None, batchId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List Tasks.

status can be a single status or a list of statuses. assigneeId is Crowdin only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.tasks.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.tasks.getMany

def list_user_tasks(self, orderBy: Optional[Sorting] = None, status: Union[CrowdinTaskStatus, Iterable[CrowdinTaskStatus], None] = None, isArchived: Optional[bool] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)

List User Tasks (tasks of the authorized user).

status can be a single status or a list of statuses.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.user.tasks.getMany

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.user.tasks.getMany

class TeamsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Teams.

Organization teams.

Use API to create, modify, and delete specific teams and members.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Teams

Ancestors

Methods

def add_team(self, name: str)
def add_team_members(self, teamId: int, userIds: Iterable[int])
def add_team_to_project(self, teamId: int, projectId: Optional[int] = None, accessToAllWorkflowSteps: Optional[bool] = None, managerAccess: Optional[bool] = None, permissions: Optional[Permissions] = None, roles: Optional[Iterable[TeamByProjectRole]] = None, developerAccess: Optional[bool] = None)

Add Team To Project.

managerAccess, developerAccess, accessToAllWorkflowSteps, permissions and roles are mutually exclusive. accessToAllWorkflowSteps and permissions are deprecated by the API, use roles instead. Omitted values fall back to the API defaults (accessToAllWorkflowSteps - true, managerAccess - false).

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.teams.post

def delete_all_team_members(self, teamId: int)
def delete_team(self, teamId: int)
def delete_team_member(self, teamId: int, memberId: int)
def edit_team(self, teamId: int, data: Iterable[TeamPatchRequest])
def edit_team_project_permissions(self, teamId: int, data: Iterable[TeamProjectPermissionsPatchRequest])
def get_group_team(self, group_id: int, team_id: int)
def get_group_teams_path(self, group_id: int, team_id: Optional[int] = None)
def get_members_path(self, teamId: int, memberId: Optional[int] = None)
def get_team(self, teamId: int)
def get_teams_path(self, teamId: Optional[int] = None)
def list_group_teams(self, group_id: int, order_by: Optional[Sorting] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def list_team_project_permissions(self, teamId: int, offset: Optional[int] = None, limit: Optional[int] = None)
def list_teams(self, order_by: Optional[Sorting] = None, offset: Optional[int] = None, limit: Optional[int] = None, search: Optional[str] = None, project_ids: Optional[Iterable[int]] = None, project_roles: Optional[Iterable[ProjectRole]] = None, language_ids: Optional[Iterable[str]] = None, group_ids: Optional[Iterable[int]] = None)
def teams_member_list(self, teamId: int, offset: Optional[int] = None, limit: Optional[int] = None)
def update_group_teams(self, group_id: int, request_data: Iterable[GroupTeamPatchRequest])
class TranslationMemoryResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Translation Memory.

Translation Memory (TM) is a vault of translations that were previously made in other projects. Those translations can be reused to speed up the translation process. Every translation made in the project is automatically added to the project Translation Memory.

Use API to create, upload, download, or remove specific TM. Translation Memory export and import are asynchronous operations and shall be completed with sequence of API methods.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translation-Memory

Ancestors

Methods

def add_tm(self, name: str, languageId: str, isShared: Optional[bool] = None, groupId: Optional[int] = None)

Add TM.

:param isShared: Whether the TM should be shared to all projects within the account (Crowdin) or within the group (Crowdin Enterprise). :param groupId: Group Identifier. If 0 – the TM will be available for all projects and groups in the workspace. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.tms.post

def check_tm_export_status(self, tmId: int, exportId: str)
def check_tm_import_status(self, tmId: int, importId: str)
def clear_tm(self, tmId: int)
def concordance_search_in_tms(self, sourceLanguageId: str, targetLanguageId: str, autoSubstitution: bool, minRelevant: int, expressions: Iterable[str], projectId: Optional[int] = None)
def create_tm_segment(self, tmId: int, records: Iterable[TranslationMemorySegmentRecord])
def delete_tm(self, tmId: int)
def delete_tm_segment(self, tmId: int, segmentId: int)
def download_tm(self, tmId: int, exportId: str)
def edit_tm(self, tmId: int, data: Iterable[TranslationMemoryPatchRequest])

Edit TM.

TranslationMemoryPatchPath.GROUP_ID (/groupId) is Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.tms.patch

def edit_tm_segment(self, tmId: int, segmentId: int, data: Iterable[Union[TranslationMemorySegmentRecordOperationAdd, TranslationMemorySegmentRecordOperationReplace, TranslationMemorySegmentRecordOperationRemove]])
def export_tm(self, tmId: int, sourceLanguageId: Optional[str] = None, targetLanguageId: Optional[str] = None, format: Union[TranslationMemoryExportFormat, ExportFormat, None] = None)

Export TM.

:param format: TM file format: tmx (default), csv or xlsx. Use TranslationMemoryExportFormat.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.tms.exports.post

def get_tm(self, tmId: int)
def get_tm_export_path(self, tmId: int, exportId: Optional[str] = None)
def get_tm_segment(self, tmId: int, segmentId: int)
def get_tm_segments_path(self, tmId: int, segmentId: Optional[int] = None)
def get_tms_path(self, tmId: Optional[int] = None)
def import_tm(self, tmId: int, storageId: int, scheme: Optional[Dict[~KT, ~VT]] = None, firstLineContainsHeader: Optional[bool] = None)
def list_tm_segments(self, tmId: int, orderBy: Optional[Sorting] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, croql: Optional[str] = None)

List TM Segments.

:param croql: Filter segments by CroQL.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.tms.segments.getMany

def list_tms(self, orderBy: Optional[Sorting] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, filter: Optional[str] = None, userId: Optional[int] = None, groupId: Optional[int] = None)

List TMs.

:param filter: Filter TMs by name. :param userId: Project Member Identifier. Crowdin only. :param groupId: Group Identifier. Set 0 to see TMs of root group. Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.tms.getMany

def tm_segment_batch_operations(self, tmId: int, data: Iterable[Union[TranslationMemorySegmentBatchOperationAdd, TranslationMemorySegmentBatchOperationReplace, TranslationMemorySegmentBatchOperationRemove]])
class TranslationStatusResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Translation Status.

Status represents the general localization progress on both translations and proofreading.

Use API to check translation and proofreading progress on different levels: file, language, branch, directory.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translation-Status

Ancestors

Methods

def cancel_qa_checks_revalidation(self, projectId: Optional[int] = None, revalidationId: Optional[str] = None)

Cancel QA Checks Revalidation.

Cancels the QA checks revalidation job identified by revalidationId (the identifier returned by start_qa_checks_revalidation). Omitting revalidationId is deprecated.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translation-Status/operation/api.projects.qa-checks.revalidate.delete

def get_branch_progress(self, branchId: int, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_directory_progress(self, directoryId: int, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_file_progress(self, fileId: int, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_language_progress(self, languageId: str, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_project_progress(self, projectId: Optional[int] = None, languageIds: Optional[Iterable[str]] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def get_qa_checks_revalidation_path(self, projectId: int, revalidationId: Optional[str] = None)
def get_qa_checks_revalidation_status(self, projectId: Optional[int] = None, revalidationId: Optional[str] = None)

Get QA Checks Revalidation Status.

Returns the status of the QA checks revalidation job identified by revalidationId (the identifier returned by start_qa_checks_revalidation). Omitting revalidationId is deprecated.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translation-Status/operation/api.projects.qa-checks.revalidate.get

def list_qa_check_issues(self, projectId: Optional[int] = None, category: Optional[Iterable[Category]] = None, validation: Optional[Iterable[Validation]] = None, languageIds: Optional[Iterable[str]] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, taskId: Optional[int] = None, fileId: Optional[int] = None, branchId: Optional[int] = None)

List QA Check Issues.

fileId is available in file-based projects only, branchId in string-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.qa-checks.getMany

def start_qa_checks_revalidation(self, projectId: Optional[int] = None, qaCheckCategories: Optional[Iterable[QaChecksRevalidationCategory]] = None, languageIds: Optional[Iterable[str]] = None, failedOnly: Optional[bool] = None, externalQaCheckIds: Optional[Iterable[int]] = None)

Start QA Checks Revalidation.

Triggers a new QA checks revalidation job for the project.

externalQaCheckIds is available in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translation-Status/operation/api.projects.qa-checks.revalidate.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Translation-Status/operation/api.projects.qa-checks.revalidate.post

def validate_text_by_qa_checks(self, data: Iterable[ValidateQaChecksRequest], projectId: Optional[int] = None)

Validate Text by QA Checks.

Runs QA checks against the passed texts without saving them as translations.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.validate-qa-checks.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.validate-qa-checks.post

class TranslationsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Translations.

Translators can work with entirely untranslated project or you can pre-translate the files to ease the translations process.

Use API to pre-translate files via Machine Translation (MT) or Translation Memory (TM), upload your existing translations, and download translations correspondingly. Pre-translate and build are asynchronous operations and shall be completed with sequence of API methods.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translations

Ancestors

Methods

def apply_pre_translation(self, languageIds: Optional[Iterable[str]] = None, fileIds: Optional[Iterable[int]] = None, projectId: Optional[int] = None, method: Optional[PreTranslationApplyMethod] = None, engineId: Optional[int] = None, aiPromptId: Optional[int] = None, autoApproveOption: Optional[PreTranslationAutoApproveOption] = None, duplicateTranslations: Optional[bool] = None, skipApprovedTranslations: Optional[bool] = None, translateUntranslatedOnly: Optional[bool] = None, scope: Optional[PreTranslationScope] = None, translationModifiedBefore: Optional[str] = None, replaceTranslationsOption: Optional[PreTranslationReplaceTranslationsOption] = None, resetApprovalStatus: Optional[bool] = None, translateWithPerfectMatchOnly: Optional[bool] = None, fallbackLanguages: Optional[Iterable[FallbackLanguages]] = None, labelIds: Optional[Iterable[int]] = None, excludeLabelIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, directoryIds: Optional[Iterable[int]] = None, taskId: Optional[int] = None, priority: Optional[PreTranslationPriority] = None, translationModifiedAfter: Optional[str] = None, notifyOnCompletion: Optional[bool] = None, sourceLanguageId: Optional[str] = None, customInstruction: Optional[str] = None, minimumMatchRatio: Optional[int] = None)

Apply Pre-Translation.

Pre-translate by files: pass languageIds together with fileIds, directoryIds (file-based projects only) or branchIds. fileIds is required only when neither directoryIds nor branchIds is set.

Pre-translate by task: pass taskId (the target language is taken from the task), languageIds and files are not required in this case.

translateUntranslatedOnly is deprecated in favor of scope and cannot be combined with it in the same request.

sourceLanguageId is available in Crowdin only, minimumMatchRatio in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.pre-translations.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.pre-translations.post

def build_crowdin_project_translation(self, projectId: Optional[int] = None, branchId: Optional[int] = None, targetLanguageIds: Optional[Iterable[str]] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None)

Build Project Translation(Crowdin Translation Create Project Build Form).

File-based projects only. exportApprovedOnly is available in Crowdin only; exportWithMinApprovalsCount and exportStringsThatPassedWorkflow in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.builds.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.builds.post

def build_project_directory_translation(self, directoryId: int, projectId: Optional[int] = None, targetLanguageIds: Optional[Iterable[str]] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None, preserveFolderHierarchy: Optional[bool] = None)

Build Project Directory Translation.

exportApprovedOnly is available in Crowdin only; exportWithMinApprovalsCount and exportStringsThatPassedWorkflow in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.builds.directories.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.builds.directories.post

def build_project_file_translation(self, fileId: int, targetLanguageId: str, projectId: Optional[int] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, eTag: Optional[str] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None)

Build Project File Translation.

exportApprovedOnly is available in Crowdin only; exportWithMinApprovalsCount and exportStringsThatPassedWorkflow in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.builds.files.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.builds.files.post

def build_project_translation(self, request_data: Dict[~KT, ~VT], projectId: Optional[int] = None)
def build_pseudo_project_translation(self, pseudo: bool, projectId: Optional[int] = None, prefix: Optional[str] = None, suffix: Optional[str] = None, lengthTransformation: Optional[int] = None, charTransformation: Optional[CharTransformation] = None, branchId: Optional[int] = None)

Build Project Translation(Translation Create Project Pseudo Build Form).

File-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.builds.post

def cancel_build(self, buildId: int, projectId: Optional[int] = None)
def check_project_build_status(self, buildId: int, projectId: Optional[int] = None)
def download_project_translations(self, buildId: int, projectId: Optional[int] = None)
def edit_pre_translation(self, preTranslationId: str, data: Iterable[EditPreTranslationScheme], projectId: Optional[int] = None)

Edit Pre-Translation

Supported patch paths: PreTranslationPatchPath (/status, /priority).

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.pre-translations.patch

def export_project_translation(self, targetLanguageId: str, projectId: Optional[int] = None, format: Optional[ExportProjectTranslationFormat] = None, labelIds: Optional[Iterable[int]] = None, branchIds: Optional[Iterable[int]] = None, directoryIds: Optional[Iterable[int]] = None, fileIds: Optional[Iterable[int]] = None, skipUntranslatedStrings: Optional[bool] = None, skipUntranslatedFiles: Optional[bool] = None, exportApprovedOnly: Optional[bool] = None, exportWithMinApprovalsCount: Optional[int] = None, exportStringsThatPassedWorkflow: Optional[bool] = None)

Export Project Translation.

directoryIds, fileIds and skipUntranslatedFiles are available in file-based projects only. exportApprovedOnly is available in Crowdin only; exportWithMinApprovalsCount and exportStringsThatPassedWorkflow in Crowdin Enterprise only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.exports.post

Link to documentation for enterprise: https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.projects.translations.exports.post

def get_builds_path(self, projectId: int, buildId: Optional[int] = None)
def import_translations(self, project_id: int, storage_id: int, language_ids: Optional[Iterable[str]] = None, file_id: Optional[int] = None, import_eq_suggestions: Optional[bool] = None, auto_approve_imported: Optional[bool] = None, translate_hidden: Optional[bool] = None, add_to_tm: Optional[bool] = None, branch_id: Optional[int] = None, import_options: Optional[ImportTranslationsOptions] = None)

Import Translations

file_id is used in file-based projects; branch_id and import_options (spreadsheet columns mapping) in string-based projects.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.translations.imports

def import_translations_report(self, project_id: int, import_translation_id: int)
def import_translations_status(self, project_id: int, import_translation_id: int)
def list_pre_translations(self, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None, orderBy: Optional[Sorting] = None)
def list_project_builds(self, projectId: Optional[int] = None, branchId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def pre_translation_batch_operations(self, data: Iterable[EditPreTranslationScheme], projectId: Optional[int] = None)
def pre_translation_report(self, preTranslationId: str, projectId: Optional[int] = None)
def pre_translation_status(self, preTranslationId: str, projectId: Optional[int] = None)

Pre-Translation Status.

preTranslationId is the auto-translation job identifier (jobIdentifier in the API reference).

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Translations/paths/~1projects~1{projectId}~1pre-translations~1{preTranslationId}/get

def upload_translation(self, languageId: str, storageId: int, fileId: int, projectId: Optional[int] = None, importEqSuggestions: Optional[bool] = None, autoApproveImported: Optional[bool] = None, translateHidden: Optional[bool] = None, addToTm: Optional[bool] = None)

Upload Translations.

Deprecated by the API: use import_translations instead.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.translations.postOnLanguage

class UsersResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Users.

Users API gives you the possibility to get profile information about the currently authenticated user.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Users

Ancestors

Methods

def add_project_member(self, userIds: Optional[Iterable[int]] = None, projectId: Optional[int] = None, usernames: Optional[Iterable[str]] = None, emails: Optional[Iterable[str]] = None, managerAccess: Optional[bool] = None, developerAccess: Optional[bool] = None, roles: Optional[Iterable[ProjectMemberRole]] = None, message: Optional[str] = None)

Add Project Member.

One of userIds, usernames or emails is required. managerAccess, developerAccess and roles are mutually exclusive.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.members.post

def edit_authenticated_user(self, data: Iterable[AuthenticatedUserPatchRequest])

Edit Authenticated User.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.user.patch

def list_project_members(self, projectId: Optional[int] = None, orderBy: Optional[Sorting] = None, search: Optional[str] = None, role: Optional[UserRole] = None, languageId: Optional[str] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
def replace_project_member_permissions(self, memberId: int, projectId: Optional[int] = None, managerAccess: Optional[bool] = None, developerAccess: Optional[bool] = None, roles: Optional[Iterable[ProjectMemberRole]] = None)

Replace Project Member Permissions.

managerAccess, developerAccess and roles are mutually exclusive.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.members.put

Inherited members

class VendorsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Vendors.

Vendors are the organizations that provide professional translation services. To assign a Vendor to a project workflow you should invite an existing Organization to be a Vendor for you.

Use API to get the list of the Vendors you already invited to your organization.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Vendors

Ancestors

Methods

def list_vendors(self, offset: Optional[int] = None, limit: Optional[int] = None)
class WebhooksResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Webhooks.

Webhooks allow you to collect information about events that happen in your Crowdin projects. You can select the request type, content type, and add a custom payload, which allows you to create integrations with other systems on your own.

You can configure webhooks for the following events: -project file is fully translated -project file is fully reviewed -all strings in project are translated -all strings in project are reviewed -final translation of string is updated (using Replace in suggestions feature) -source string is added -source string is updated -source string is deleted -source string is translated -translation for source string is updated (using Replace in suggestions feature) -one of translations is deleted -translation for string is approved -approval for previously added translation is removed

Use API to create, modify, and delete specific webhooks.

Link to documentation: https://support.crowdin.com/developer/api/v2/#tag/Webhooks

Ancestors

Methods

def add_webhook(self, name: str, url: str, events: Iterable[WebhookEvents], requestType: WebhookRequestType, projectId: Optional[int] = None, isActive: Optional[bool] = None, batchingEnabled: Optional[bool] = None, contentType: Optional[WebhookContentType] = None, headers: Optional[Dict[~KT, ~VT]] = None, payload: Optional[Dict[~KT, ~VT]] = None)

Add Webhook.

Note: file.* events are available for file-based projects only.

Link to documentation: https://support.crowdin.com/developer/api/v2/#operation/api.projects.webhooks.post

def delete_webhook(self, webhookId: int, projectId: Optional[int] = None)
def edit_webhook(self, webhookId: int, data: Iterable[WebhookPatchRequest], projectId: Optional[int] = None)
def get_webhook(self, webhookId: int, projectId: Optional[int] = None)
def get_webhooks_path(self, projectId: int, webhookId: Optional[int] = None)
def list_webhooks(self, projectId: Optional[int] = None, page: Optional[int] = None, offset: Optional[int] = None, limit: Optional[int] = None)
class WorkflowsResource (requester: APIRequester, project_id: Optional[int] = None, page_size=25)

Resource for Workflows.

Workflows are the sequences of steps that content in your project should go through (e.g. pre-translation, translation, proofreading). You can use a default template or create the one that works best for you and assign it to the needed projects.

Use API to get the list of workflow templates available in your organization and to check the details of a specific template.

Link to documentation: https://support.crowdin.com/developer/enterprise/api/v2/#tag/Workflows

Ancestors

Methods

def get_workflow_step(self, stepId: int, projectId: Optional[int] = None)
def get_workflow_step_strings_path(self, projectId: int, stepId: int)
def get_workflow_steps_path(self, projectId: int, stepId: Optional[int] = None)
def get_workflow_template(self, templateId: int)
def get_workflow_templates_path(self, templateId: Optional[int] = None)
def list_workflow_step_strings(self, projectId: Optional[int], stepId: int, languageIds: Optional[str] = None, orderBy: Optional[Sorting] = None, status: Optional[str] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_workflow_steps(self, projectId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)
def list_workflow_templates(self, groupId: Optional[int] = None, limit: Optional[int] = None, offset: Optional[int] = None)