{"openapi":"3.1.0","info":{"title":"LingoHub (BYOK) API","version":"0.1.0","description":"LingoHub (BYOK) lets an AI assistant read your own LingoHub data through the LingoHub API with a key you supply (LingoHub API key (starts with lingohub_)). Read-only: 5 tools (list_projects, get_project, get_workspace_translation_status, get_project_status, list_resource_files). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-lingohub.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-lingohub/docs"},"termsOfService":"https://connectorbay.com/byok-lingohub/terms"},"servers":[{"url":"https://byok-lingohub.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-lingohub/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 all localization projects the key can access, with title and links; the self link shows the workspace and project i","description":"List all localization projects the key can access, with title and links; the self link shows the workspace and project identifiers used by the other tools. Use for \"Which LingoHub projects can I see\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"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 project's title, description, language codes and creation and update times (the owner's email is not returned). ","description":"Get one project's title, description, language codes and creation and update times (the owner's email is not returned). Use for \"Which languages is the LingoHub project 'lh-frontend' set up for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_url":{"description":"Workspace identifier (the workspaceUrl part of a project URL), for example 'lingohub'.","maxLength":200,"title":"Workspace Url","type":"string"},"project_url":{"description":"Project identifier (slug) as shown in the project's self link, for example 'lh-frontend'.","maxLength":200,"title":"Project Url","type":"string"}},"required":["workspace_url","project_url"],"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/get_workspace_translation_status":{"post":{"operationId":"get_workspace_translation_status","summary":"Show translation progress of every project in a workspace: total segments and per-language counts of approved, translate","description":"Show translation progress of every project in a workspace: total segments and per-language counts of approved, translated, draft, prefilled and untranslated segments. Use for \"How far along are the translations in each project of my workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_url":{"description":"Workspace identifier (the workspaceUrl part of a project URL), for example 'lingohub'.","maxLength":200,"title":"Workspace Url","type":"string"}},"required":["workspace_url"],"title":"get_workspace_translation_statusArguments","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_status":{"post":{"operationId":"get_project_status","summary":"Show a project's resource files with per-language segment status counts, supported export formats and whether a code rep","description":"Show a project's resource files with per-language segment status counts, supported export formats and whether a code repository is connected. Use for \"Which files in this LingoHub project still have untranslated segments\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_url":{"description":"Workspace identifier (the workspaceUrl part of a project URL), for example 'lingohub'.","maxLength":200,"title":"Workspace Url","type":"string"},"project_url":{"description":"Project identifier (slug) as shown in the project's self link, for example 'lh-frontend'.","maxLength":200,"title":"Project Url","type":"string"},"branch":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Branch name when the project uses branches; leave out for the default branch.","title":"Branch"}},"required":["workspace_url","project_url"],"title":"get_project_statusArguments","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_resource_files":{"post":{"operationId":"list_resource_files","summary":"List the localization resource files of a project with file name and language; downloading the content is not part of th","description":"List the localization resource files of a project with file name and language; downloading the content is not part of this tool. Use for \"Which translation files does the LingoHub project 'lh-frontend' contain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_url":{"description":"Workspace identifier (the workspaceUrl part of a project URL), for example 'lingohub'.","maxLength":200,"title":"Workspace Url","type":"string"},"project_url":{"description":"Project identifier (slug) as shown in the project's self link, for example 'lh-frontend'.","maxLength":200,"title":"Project Url","type":"string"},"branch":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Branch name when the project uses branches; leave out for the default branch.","title":"Branch"}},"required":["workspace_url","project_url"],"title":"list_resource_filesArguments","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}}}}