Crowdin

Learn how to use Crowdin with Composio

Overview

SLUG: CROWDIN

Description

Crowdin is a localization management platform that streamlines the translation process, offering tools for collaboration, content centralization, and workflow automation.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to project
bearer_token
string
bearer_token
stringRequired

Connecting to Crowdin

Create an auth config

Use the dashboard to create an auth config for the Crowdin toolkit. This allows you to connect multiple Crowdin accounts to Composio for agents to use.

1

Select App

Navigate to Crowdin.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Crowdin Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4crowdin_auth_config_id = "ac_YOUR_CROWDIN_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Crowdin: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, crowdin_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4crowdin_auth_config_id = "ac_YOUR_CROWDIN_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Crowdin for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, crowdin_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Crowdin toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["CROWDIN"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Add Branch

Description

Tool to create a new branch in a crowdin project. use when you need to isolate translations for a new feature or release.

Action Parameters

exportPattern
string
name
stringRequired
priority
string
projectId
stringRequired
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add File

Description

Tool to add a new file to a crowdin project. use after uploading the file to storage to place it under the specified project, branch, or directory.

Action Parameters

branchId
integer
directoryId
integer
exportOptions
object
importOptions
object
name
stringRequired
projectId
integerRequired
storageId
integerRequired
type
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add Label

Description

Tool to create a new label in a crowdin project. use when you need to tag resources with a custom identifier, such as 'sprint-5'.

Action Parameters

description
string
name
stringRequired
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Crowdin Project

Description

Tool to create a new project in crowdin. use before uploading source files to initialize translation workflows.

Action Parameters

cname
string
description
string
logo
string
name
stringRequired
normalizePlaceholder
boolean
notificationSettings
object
sourceLanguageId
stringRequired
sourceLanguageMapping
object
targetLanguageIds
arrayRequired
type
integer
visibility
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Add Webhook

Description

Tool to create a new webhook in a crowdin project. use after confirming the project id and desired event triggers.

Action Parameters

events
arrayRequired
headers
object
isActive
booleanDefaults to True
name
stringRequired
payload
string
projectId
stringRequired
requestType
string
url
Required

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Assign Label to Strings

Description

Tool to assign the specified label to provided string ids in a project. use after creating the label or verifying string ids to categorize content.

Action Parameters

labelId
integerRequired
projectId
stringRequired
stringIds
arrayRequired

Action Response

data
arrayRequired
error
string
successful
booleanRequired

Tool Name: Delete Branch

Description

Tool to delete a specific branch from a crowdin project. use when you need to remove an obsolete branch after it's fully merged.

Action Parameters

branchId
integerRequired
projectId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Label

Description

Tool to delete the label identified by the specified label id in a project. use when you need to remove outdated or incorrect labels. ensure no resources reference the label before deletion.

Action Parameters

label_id
integerRequired
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Project

Description

Tool to delete a crowdin project by its id. use when you need to permanently remove a project after confirming no further usage. ensure all resources are no longer needed before deletion.

Action Parameters

project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Webhook

Description

Tool to delete the webhook identified by the specified webhook id in a crowdin project. use when you need to remove obsolete or incorrect webhooks after confirming project and webhook ids.

Action Parameters

projectId
stringRequired
webhookId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Edit File

Description

Tool to update file details in a project. use after confirming valid project and file ids.

Action Parameters

file_id
integerRequired
operations
arrayRequired
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Edit Label

Description

Tool to edit a label in a crowdin project. use when you need to update the name or description of an existing label. ensure the label exists before using. example: edit label 42 to 'release-1.1'.

Action Parameters

description
string
label_id
integerRequired
name
string
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Edit Project

Description

Tool to update project details using json-patch. use after confirming project settings to modify metadata like name, description, visibility, or languages.

Action Parameters

patch
arrayRequired
projectId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Edit String

Description

Tool to update string details in a crowdin project. use when you need to modify a string's text or metadata after creation.

Action Parameters

operations
arrayRequired
projectId
integerRequired
stringId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Label

Description

Tool to retrieve information about the label identified by the specified label id in a project. use after confirming the project context to fetch label details.

Action Parameters

label_id
integerRequired
project_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Language

Description

Tool to retrieve details of a specific language. use when you have a language identifier and need locale codes and plural rules before configuring translations.

Action Parameters

languageId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Member Info

Description

Tool to retrieve information about a project member. use when you need to inspect details for a specific user within a project after obtaining their member id.

Action Parameters

memberId
integerRequired
projectId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Project

Description

Tool to retrieve details of a specific crowdin project. use when you need to inspect project settings before making updates.

Action Parameters

projectId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get String

Description

Tool to retrieve details of a specific string in a crowdin project. use after confirming the project and string ids to fetch its metadata.

Action Parameters

projectId
integerRequired
stringId
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Webhook

Description

Tool to retrieve information about the webhook identified by the specified webhook id in a project. use after confirming the project context to fetch webhook details.

Action Parameters

project_id
integerRequired
webhook_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Branches

Description

Tool to list all branches in a crowdin project. use after selecting a project to view its branch structure. supports pagination and optional filtering by branch id.

Action Parameters

branchId
integer
limit
integer
offset
integer
projectId
integerRequired

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Files

Description

Tool to list files in a crowdin project. use when you need to retrieve a list of project files with optional filters by directory, group, or branch before processing.

Action Parameters

branchId
integer
directoryId
integer
groupId
integer
limit
integer
offset
integer
projectId
integerRequired

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Labels

Description

Tool to list labels in a crowdin project. use when you need to retrieve all labels for a specific project with optional pagination.

Action Parameters

limit
integer
offset
integer
project_id
integerRequired

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Languages

Description

Tool to retrieve a list of supported languages. use when you need to fetch all languages crowdin supports before starting localization.

Action Parameters

limit
integer
offset
integer

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Projects

Description

Tool to retrieve a list of all crowdin projects with optional filters. use when you need to paginate through or filter projects by owner, group, language inclusion, or archive status.

Action Parameters

groupId
integer
hasManagerAccess
boolean
isArchived
boolean
languageId
string
limit
integer
offset
integer
userId
integer

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Project Members

Description

Tool to list members in a crowdin project. use when you need to retrieve project member list for management tasks after confirming the project id.

Action Parameters

languageId
string
limit
integerDefaults to 25
offset
integer
projectId
integerRequired
role
string
search
string

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: List Reports

Description

Tool to list reports for a given crowdin project. use after confirming project id to retrieve available reports. supports pagination via limit and offset.

Action Parameters

limit
integer
offset
integer
projectId
integerRequired

Action Response

data
arrayRequired
error
string
pagination
objectRequired
successful
booleanRequired

Tool Name: Upload Storage

Description

Tool to upload a file to crowdin storage. use when you need to obtain a storageid for further operations like adding files to a project.

Action Parameters

contentType
stringRequired
file
stringRequired
fileName
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired