crowdin / crowdin/crowdin-api-client-go
Add support for organization-level Search API
- Dominant language
- Go
- Stars
- 10
- Forks
- 18
- Avg merge
- 1h 11m
- Merged PRs (30d)
- 1
Description
The Crowdin API introduces organization-level search endpoints that search across multiple projects at once:
- **Search Branches** — `GET /branches` (`api.branches.getMany`) — file-based and string-based projects
- **Search Directories** — `GET /directories` (`api.directories.getMany`) — file-based projects only
- **Search Files** — `GET /files` (`api.files.getMany`) — file-based projects only
- **Search Strings** — `GET /strings` (`api.strings.getMany`) — extra params: `scope` (`all`, `text`, `context`, `key`; default `all`), `denormalizePlaceholders` (`0`/`1`)
- **Search Translations** — `GET /translations` (`api.translations.getMany`) — extra params: `languageIds` (comma-separated), `denormalizePlaceholders`
Common query parameters: `filter` (string, **required**, max 128 chars), `projectIds` (comma-separated, optional, max 50 projects — omit to search all accessible projects), `limit`/`offset`. On crowdin.com the endpoints also accept an optional `userId` query parameter (not present in Crowdin Enterprise).
Search Translations returns translation items extended with `projectId`, `stringId`, and `languageId` so results can be traced back to their project. Documented error responses include `404` (nothing to search) and `422` (search query too broad).
Client libraries should add these methods. Available in both Crowdin and Crowdin Enterprise.
**References:**
- [Search Branches](https://support.crowdin.com/developer/api/v2/#operation/api.branches.getMany)
- [Search Directories](https://support.crowdin.com/developer/api/v2/#operation/api.directories.getMany)
- [Search Files](https://support.crowdin.com/developer/api/v2/#operation/api.files.getMany)
- [Search Strings](https://support.crowdin.com/developer/api/v2/#operation/api.strings.getMany)
- [Search Translations](https://support.crowdin.com/developer/api/v2/#operation/api.translations.getMany)
- Crowdin Enterprise: [Search Branches](https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.branches.getMany), [Search Strings](https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.strings.getMany), [Search Translations](https://support.crowdin.com/developer/enterprise/api/v2/#operation/api.translations.getMany)
Contributor guide
Research direction
Start by locating the Go client entry points for api.branches.getMany, api.directories.getMany, api.files.getMany, api.strings.getMany, and api.translations.getMany. Add organization-level methods with the listed filter, projectIds, pagination, and endpoint-specific parameters, including the optional userId where applicable. Done means all five endpoints are available for Crowdin and Crowdin Enterprise with the documented translation fields and 404/422 responses represented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100