{"openapi":"3.1.0","info":{"title":"Tolgee (BYOK) API","version":"0.1.0","description":"Tolgee (BYOK) lets an AI assistant read your own Tolgee data through the Tolgee API with a key you supply (Tolgee personal access token or project API key). Read-only: 11 tools (list_projects, get_project, list_languages, get_project_stats, list_translations, search_keys, list_namespaces, list_labels, list_tasks, get_daily_activity, list_organizations). The BYOK key travels with each request, is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tolgee.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tolgee/docs"},"termsOfService":"https://connectorbay.com/byok-tolgee/terms"},"servers":[{"url":"https://byok-tolgee.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tolgee/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List the Tolgee projects the key can access, with name, slug, base language and permissions. Needs a personal access tok","description":"List the Tolgee projects the key can access, with name, slug, base language and permissions. Needs a personal access token. Use for \"Which Tolgee projects do I have access to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only projects whose name contains this text.","title":"Search"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one Tolgee project: name, slug, description, base language and whether namespaces, branching and QA checks are on. U","description":"Get one Tolgee project: name, slug, description, base language and whether namespaces, branching and QA checks are on. Use for \"What are the settings of Tolgee project 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"}},"required":["project_id"],"title":"get_projectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_languages":{"post":{"operationId":"list_languages","summary":"List the languages of a Tolgee project with tag, name and which one is the base language. Use for \"Which languages does ","description":"List the languages of a Tolgee project with tag, name and which one is the base language. Use for \"Which languages does Tolgee project 1 translate into\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"search":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Only languages whose name or tag contains this text.","title":"Search"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"required":["project_id"],"title":"list_languagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project_stats":{"post":{"operationId":"get_project_stats","summary":"Get translation progress of a Tolgee project: key and word counts, translated and reviewed percentages, and per-language","description":"Get translation progress of a Tolgee project: key and word counts, translated and reviewed percentages, and per-language statistics. Use for \"How complete are the translations in Tolgee project 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"branch":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Branch name, only when the project uses branching.","title":"Branch"}},"required":["project_id"],"title":"get_project_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_translations":{"post":{"operationId":"list_translations","summary":"List the keys of a Tolgee project with their translations per language, optionally searching text or finding keys that l","description":"List the keys of a Tolgee project with their translations per language, optionally searching text or finding keys that lack a translation in one language. Use for \"Which keys in Tolgee project 1 are still untranslated in German\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to find in key names or translation text.","title":"Search"},"filter_untranslated_in_lang":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only keys with no translation in this language tag (for example 'de').","title":"Filter Untranslated In Lang"},"filter_translated_in_lang":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only keys that have a translation in this language tag.","title":"Filter Translated In Lang"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from a previous answer's nextCursor, to continue a list.","title":"Cursor"}},"required":["project_id"],"title":"list_translationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_keys":{"post":{"operationId":"search_keys","summary":"Search the translation keys of a Tolgee project by key name or text, returning the matching key, namespace and a transla","description":"Search the translation keys of a Tolgee project by key name or text, returning the matching key, namespace and a translation in the chosen language. Use for \"Find the Tolgee key whose text mentions 'checkout'\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"search":{"description":"Text to look for in key names and translations.","maxLength":200,"title":"Search","type":"string"},"language_tag":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Language tag whose translation should be returned (for example 'de').","title":"Language Tag"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"required":["project_id","search"],"title":"search_keysArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_namespaces":{"post":{"operationId":"list_namespaces","summary":"List the translation namespaces used in a Tolgee project. Use for \"Which namespaces does Tolgee project 1 use\".","description":"List the translation namespaces used in a Tolgee project. Use for \"Which namespaces does Tolgee project 1 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"}},"required":["project_id"],"title":"list_namespacesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_labels":{"post":{"operationId":"list_labels","summary":"List the translation labels defined in a Tolgee project. Use for \"Which translation labels exist in Tolgee project 1\".","description":"List the translation labels defined in a Tolgee project. Use for \"Which translation labels exist in Tolgee project 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only labels whose name contains this text.","title":"Search"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"required":["project_id"],"title":"list_labelsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tasks":{"post":{"operationId":"list_tasks","summary":"List translation and review tasks of a Tolgee project with state, type, language, due date and progress. Use for \"Which ","description":"List translation and review tasks of a Tolgee project with state, type, language, due date and progress. Use for \"Which open translation tasks does Tolgee project 1 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"},"filter_state":{"anyOf":[{"enum":["NEW","IN_PROGRESS","FINISHED","CANCELED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks in this state.","title":"Filter State"},"filter_type":{"anyOf":[{"enum":["TRANSLATE","REVIEW"],"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks of this type.","title":"Filter Type"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks whose name contains this text.","title":"Search"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"required":["project_id"],"title":"list_tasksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_daily_activity":{"post":{"operationId":"get_daily_activity","summary":"Get the number of change events per day in a Tolgee project, as a map from date to count. Use for \"How active was Tolgee","description":"Get the number of change events per day in a Tolgee project, as a map from date to count. Use for \"How active was Tolgee project 1 over the past weeks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Numeric id of the Tolgee project (shown in the project URL and returned by list_projects).","minimum":1,"title":"Project Id","type":"integer"}},"required":["project_id"],"title":"get_daily_activityArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organizations":{"post":{"operationId":"list_organizations","summary":"List the Tolgee organizations the key's user belongs to, with slug and role. Needs a personal access token. Use for \"Whi","description":"List the Tolgee organizations the key's user belongs to, with slug and role. Needs a personal access token. Use for \"Which Tolgee organizations am I a member of\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only organizations whose name contains this text.","title":"Search"},"size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items per page (1 to 100).","title":"Size"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page index (0 is the first page).","title":"Page"}},"title":"list_organizationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}