{"openapi":"3.1.0","info":{"title":"Localazy (BYOK) API","version":"0.1.0","description":"Localazy (BYOK) lets an AI assistant read your own Localazy data through the Localazy API with a key you supply (Localazy project or organization token (the token has read and write rights, this connector only reads)). Read-only: 8 tools (list_projects, list_files, list_file_keys, list_glossary, list_screenshots, list_screenshot_tags, list_cdn_release_tags, list_key_links). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-localazy.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-localazy/docs"},"termsOfService":"https://connectorbay.com/byok-localazy/terms"},"servers":[{"url":"https://byok-localazy.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-localazy/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 Localazy projects the token can access with slug, role, source language and optional language progress and orga","description":"List the Localazy projects the token can access with slug, role, source language and optional language progress and organization limits. Use for \"Which Localazy projects can my token see\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"languages":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include per-language progress counts.","title":"Languages"},"organization":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the owning organization's key quota and feature flags.","title":"Organization"}},"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/list_files":{"post":{"operationId":"list_files","summary":"List the files of a project (id, type, name, stored path). Use for \"Which files does this Localazy project contain\".","description":"List the files of a project (id, type, name, stored path). Use for \"Which files does this Localazy project contain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_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}},"/v1/tools/list_file_keys":{"post":{"operationId":"list_file_keys","summary":"List the keys of one file with their translation in one language; use the next value to get further pages (up to 1000 ke","description":"List the keys of one file with their translation in one language; use the next value to get further pages (up to 1000 keys per call). Use for \"Show the German strings of this Localazy file\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"},"file_id":{"description":"File id from list_files.","maxLength":200,"title":"File Id","type":"string"},"lang":{"description":"Locale code in the form ll-Scrp-RR, for example de or pt-BR.","maxLength":200,"title":"Lang","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Keys per call (1 to 1000).","title":"Limit"},"next":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging key returned as next by the previous call.","title":"Next"},"unapproved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include unapproved translations.","title":"Unapproved"},"extra_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to add hidden, limit, deprecated and comment attributes to each key.","title":"Extra Info"},"no_content":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to leave out the translations and list only key names.","title":"No Content"}},"required":["project_id","file_id","lang"],"title":"list_file_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_glossary":{"post":{"operationId":"list_glossary","summary":"List the project's glossary terms with their translations per language. Use for \"What glossary terms does this Localazy ","description":"List the project's glossary terms with their translations per language. Use for \"What glossary terms does this Localazy project define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_glossaryArguments","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_screenshots":{"post":{"operationId":"list_screenshots","summary":"List the project's screenshots with URL, comment, tags and the key ids assigned to each. Use for \"Which screenshots are ","description":"List the project's screenshots with URL, comment, tags and the key ids assigned to each. Use for \"Which screenshots are attached to this Localazy project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_screenshotsArguments","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_screenshot_tags":{"post":{"operationId":"list_screenshot_tags","summary":"List all tags used on the project's screenshots. Use for \"Which screenshot tags exist in this Localazy project\".","description":"List all tags used on the project's screenshots. Use for \"Which screenshot tags exist in this Localazy project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_screenshot_tagsArguments","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_cdn_release_tags":{"post":{"operationId":"list_cdn_release_tags","summary":"List the published release tags of the project with the URL of each tag's CDN metadata file (needs manager role). Use fo","description":"List the published release tags of the project with the URL of each tag's CDN metadata file (needs manager role). Use for \"Which Localazy CDN release tags are published\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_cdn_release_tagsArguments","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_key_links":{"post":{"operationId":"list_key_links","summary":"List duplicity links between source keys (keys linked so that only one needs translating). Use for \"Which Localazy keys ","description":"List duplicity links between source keys (keys linked so that only one needs translating). Use for \"Which Localazy keys are linked as duplicates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Localazy project id or slug (from list_projects), for example '_a8553192904037236731'.","maxLength":200,"title":"Project Id","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Links per call (1 to 1000).","title":"Limit"},"next":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Paging key returned as next by the previous call.","title":"Next"}},"required":["project_id"],"title":"list_key_linksArguments","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}}}}