crowdin / crowdin/crowdin-api-client-go

Add support for organization-level Search API

Open
#148 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.