{"openapi":"3.0.0","info":{"title":"Ownlate API","description":"Ownlate REST API","version":"1.0"},"tags":[{"name":"workspaces"},{"name":"workspace-members"},{"name":"api-keys"},{"name":"projects"},{"name":"segments"},{"name":"translation-files"},{"name":"translation-history"},{"name":"glossary"},{"name":"comments"},{"name":"languages"},{"name":"releases"},{"name":"ota"},{"name":"integrations"},{"name":"plans"},{"name":"sdk"},{"name":"users"}],"paths":{"/public/v1/workspaces/{workspaceId}":{"get":{"operationId":"get_public_v1_workspaces__workspaceId_","summary":"Get workspace by ID (public)","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces":{"get":{"operationId":"get_v1_workspaces","summary":"List workspaces owned by the current user","tags":["workspaces"],"parameters":[],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces","summary":"Create workspace","tags":["workspaces"],"parameters":[],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"currencyId":{"type":"string","format":"uuid"}},"required":["name","currencyId"]}}}}}},"/v1/workspaces/{workspaceId}":{"get":{"operationId":"get_v1_workspaces__workspaceId_","summary":"Get workspace by ID","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces__workspaceId_","summary":"Update workspace","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255}},"required":["name"]}}}}}},"/v1/workspaces/{workspaceId}/audit-log":{"get":{"operationId":"get_v1_workspaces__workspaceId__audit_log","summary":"List workspace audit log","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/sync-word-usage":{"post":{"operationId":"post_v1_workspaces__workspaceId__sync_word_usage","summary":"Sync word usage count from approved translations","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/users/me/permissions":{"get":{"operationId":"get_v1_workspaces__workspaceId__users_me_permissions","summary":"Get current user permissions for the workspace","tags":["workspaces"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/levels":{"get":{"operationId":"get_v1_workspaces_levels","summary":"List all level permission bindings","tags":["workspace-members"],"parameters":[],"responses":{"200":{"description":""}}}},"/v1/workspaces/levels/{level}":{"get":{"operationId":"get_v1_workspaces_levels__level_","summary":"Get permissions for a specific level","tags":["workspace-members"],"parameters":[{"name":"level","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces_levels__level_","summary":"Update permissions for a level (global)","tags":["workspace-members"],"parameters":[{"name":"level","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/users/lookup":{"get":{"operationId":"get_v1_workspaces_users_lookup","summary":"Look up a core-api user by email","tags":["workspace-members"],"parameters":[],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/members":{"get":{"operationId":"get_v1_workspaces__workspaceId__members","summary":"List workspace members","tags":["workspace-members"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__members","summary":"Add or update a workspace member","tags":["workspace-members"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string"},"level":{"type":"string","enum":["owner","admin","translator","viewer"]}},"required":["userId","level"]}}}}}},"/v1/workspaces/{workspaceId}/members/{userId}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__members__userId_","summary":"Remove a workspace member","tags":["workspace-members"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/api-keys":{"get":{"operationId":"get_v1_workspaces_api_keys","summary":"","tags":["api-keys"],"parameters":[],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces_api_keys","summary":"","tags":["api-keys"],"parameters":[],"responses":{"201":{"description":""}}}},"/v1/workspaces/api-keys/{keyId}":{"delete":{"operationId":"delete_v1_workspaces_api_keys__keyId_","summary":"","tags":["api-keys"],"parameters":[{"name":"keyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/public/v1/projects":{"get":{"operationId":"get_public_v1_projects","summary":"List public projects by workspace","tags":["projects"],"parameters":[{"name":"workspaceId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}}},"/public/v1/projects/{id}":{"get":{"operationId":"get_public_v1_projects__id_","summary":"Get public project by ID","tags":["projects"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/projects":{"get":{"operationId":"get_v1_workspaces__workspaceId__projects","summary":"List projects by workspace","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__projects","summary":"Create project","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":1000},"sourceLanguage":{"type":"string","minLength":2,"maxLength":10},"targetLanguages":{"type":"array","items":{"type":"string","minLength":2,"maxLength":10},"minItems":1},"visibility":{"type":"string","enum":["public","private"]}},"required":["workspaceId","name","sourceLanguage","targetLanguages"]}}}}}},"/v1/workspaces/{workspaceId}/projects/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__projects__id_","summary":"Archive project","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"get":{"operationId":"get_v1_workspaces__workspaceId__projects__id_","summary":"Get project by ID","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces__workspaceId__projects__id_","summary":"Update project","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string","maxLength":1000},"targetLanguages":{"type":"array","items":{"type":"string","minLength":2,"maxLength":10},"minItems":1},"visibility":{"type":"string","enum":["public","private"]}}}}}}}},"/v1/workspaces/{workspaceId}/projects/{id}/oss-approve":{"put":{"operationId":"put_v1_workspaces__workspaceId__projects__id__oss_approve","summary":"Approve project for OSS plan","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/projects/{id}/permanent":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__projects__id__permanent","summary":"Permanently delete archived project","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/projects/{id}/restore":{"put":{"operationId":"put_v1_workspaces__workspaceId__projects__id__restore","summary":"Restore archived project","tags":["projects"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/public/v1/segments/progress":{"get":{"operationId":"get_public_v1_segments_progress","summary":"Get project translation progress (public projects only)","tags":["segments"],"parameters":[{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"targetLanguages","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":""}}}},"/public/v1/segments/translations-map":{"get":{"operationId":"get_public_v1_segments_translations_map","summary":"Get all project translations grouped by file and language","tags":["segments"],"parameters":[{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments","summary":"List segments by project","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"fileId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["all","untranslated","needs_review","approved","outdated"]}},{"name":"language","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__segments","summary":"Create segment","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"fileId":{"type":"string","format":"uuid"},"key":{"type":"string","minLength":1,"maxLength":500},"sourceText":{"type":"string","minLength":1},"isPlural":{"type":"boolean","default":false}},"required":["projectId","fileId","key","sourceText"]}}}}}},"/v1/workspaces/{workspaceId}/segments/analytics":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_analytics","summary":"Get project analytics (activity by day + file breakdown)","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/approve-all":{"post":{"operationId":"post_v1_workspaces__workspaceId__segments_approve_all","summary":"Approve all non-untranslated segments for a language","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"language":{"type":"string","minLength":2,"maxLength":10}},"required":["projectId","language"]}}}}}},"/v1/workspaces/{workspaceId}/segments/by-keys":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_by_keys","summary":"Fetch segments by key list (for browser extension)","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"language","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"keys","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/export":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_export","summary":"Export approved translations (json/yaml/po)","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"language","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"format","in":"query","required":false,"schema":{"type":"string"}},{"name":"fileId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"sourceLanguage","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":10}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/export-zip":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_export_zip","summary":"Export all languages as a ZIP archive","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"languages","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"format","in":"query","required":false,"schema":{"type":"string"}},{"name":"sourceLanguage","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":10}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/pre-translate":{"post":{"operationId":"post_v1_workspaces__workspaceId__segments_pre_translate","summary":"Pre-translate project segments using Translation Memory (runs in background, result delivered via WS integration:task)","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"targetLanguage":{"type":"string","minLength":2,"maxLength":10},"workspaceId":{"type":"string","format":"uuid"},"sourceLanguage":{"type":"string","minLength":2,"maxLength":10},"sources":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["tm","mt"]},"minScore":{"type":"integer"},"integrationId":{"type":"string","format":"uuid"},"useBuiltIn":{"type":"boolean"}},"required":["type"]}}},"required":["projectId","targetLanguage","workspaceId","sourceLanguage","sources"]}}}}}},"/v1/workspaces/{workspaceId}/segments/progress":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_progress","summary":"Get project translation progress by language","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"targetLanguages","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/reject-all":{"post":{"operationId":"post_v1_workspaces__workspaceId__segments_reject_all","summary":"Reject all approved/reviewed/needs_review segments for a language","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"language":{"type":"string","minLength":2,"maxLength":10}},"required":["projectId","language"]}}}}}},"/v1/workspaces/{workspaceId}/segments/translation-memory":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments_translation_memory","summary":"Find Translation Memory matches","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sourceLanguage","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"targetLanguage","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"sourceText","in":"query","required":true,"schema":{"type":"string","minLength":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":5}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__segments__id_","summary":"Delete segment","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"get":{"operationId":"get_v1_workspaces__workspaceId__segments__id_","summary":"Get segment by ID","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}/auto-translate":{"post":{"operationId":"post_v1_workspaces__workspaceId__segments__id__auto_translate","summary":"Auto-translate a segment using an active AI integration","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}/draft":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__draft","summary":"Save a draft translation","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","minLength":2,"maxLength":10},"text":{"type":"string","minLength":1},"pluralForms":{"type":"object","additionalProperties":{"type":"string"}}},"required":["language"]}}}}}},"/v1/workspaces/{workspaceId}/segments/{id}/qa":{"get":{"operationId":"get_v1_workspaces__workspaceId__segments__id__qa","summary":"Run QA checks on a segment translation","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"sourceLanguage","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}/source-text":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__source_text","summary":"Update segment source text and mark all existing translations as outdated","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sourceText":{"type":"string","minLength":1}},"required":["sourceText"]}}}}}},"/v1/workspaces/{workspaceId}/segments/{id}/translate":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__translate","summary":"Add or update translation for a segment","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","minLength":2,"maxLength":10},"text":{"type":"string","minLength":1},"pluralForms":{"type":"object","additionalProperties":{"type":"string"}}},"required":["language"]}}}}}},"/v1/workspaces/{workspaceId}/segments/{id}/translations/{language}/approve":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__translations__language__approve","summary":"Approve a translation","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}/translations/{language}/reject":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__translations__language__reject","summary":"Reject a translation","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/segments/{id}/translations/{language}/review":{"put":{"operationId":"put_v1_workspaces__workspaceId__segments__id__translations__language__review","summary":"Mark a translation as reviewed","tags":["segments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/translation-files":{"get":{"operationId":"get_v1_workspaces__workspaceId__translation_files","summary":"List translation files by project","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__translation_files","summary":"Create translation file (empty)","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","maxLength":1000,"default":""}},"required":["projectId","name"]}}}}}},"/v1/workspaces/{workspaceId}/translation-files/merge-duplicates":{"post":{"operationId":"post_v1_workspaces__workspaceId__translation_files_merge_duplicates","summary":"Remove duplicate translation files (same name+path) that were created by repeated CLI push without fileId","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"}},"required":["projectId"]}}}}}},"/v1/workspaces/{workspaceId}/translation-files/rename-folder":{"post":{"operationId":"post_v1_workspaces__workspaceId__translation_files_rename_folder","summary":"Rename a folder (updates path prefix for all files)","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"oldPath":{"type":"string","minLength":1,"maxLength":1000},"newPath":{"type":"string","minLength":1,"maxLength":1000}},"required":["projectId","oldPath","newPath"]}}}}}},"/v1/workspaces/{workspaceId}/translation-files/upload":{"post":{"operationId":"post_v1_workspaces__workspaceId__translation_files_upload","summary":"Upload translation file (JSON/YAML/PO content → creates segments)","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","maxLength":1000,"default":""},"content":{"type":"string","minLength":1},"targetLanguage":{"type":"string","minLength":2,"maxLength":10},"fileId":{"type":"string","format":"uuid"}},"required":["projectId","name","content"]}}}}}},"/v1/workspaces/{workspaceId}/translation-files/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__translation_files__id_","summary":"Delete translation file","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces__workspaceId__translation_files__id_","summary":"Rename or move a translation file","tags":["translation-files"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"path":{"type":"string","maxLength":1000}}}}}}}},"/v1/workspaces/{workspaceId}/translation-history/{segmentId}":{"get":{"operationId":"get_v1_workspaces__workspaceId__translation_history__segmentId_","summary":"List translation history for a segment","tags":["translation-history"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"segmentId","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/glossary":{"get":{"operationId":"get_v1_workspaces__workspaceId__glossary","summary":"List glossary entries for a workspace","tags":["glossary"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sourceLanguage","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__glossary","summary":"Create a glossary entry","tags":["glossary"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"sourceLanguage":{"type":"string","minLength":2,"maxLength":10},"term":{"type":"string","minLength":1,"maxLength":500},"definition":{"type":"string","maxLength":2000,"default":""},"translations":{"type":"object","additionalProperties":{"type":"string"},"default":{}},"partOfSpeech":{"type":"string","enum":["noun","verb","adjective","other"],"default":null},"caseSensitive":{"type":"boolean","default":false},"forbidden":{"type":"boolean","default":false}},"required":["workspaceId","sourceLanguage","term"]}}}}}},"/v1/workspaces/{workspaceId}/glossary/matches":{"get":{"operationId":"get_v1_workspaces__workspaceId__glossary_matches","summary":"Find glossary terms that appear in the given text","tags":["glossary"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sourceLanguage","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}},{"name":"text","in":"query","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/glossary/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__glossary__id_","summary":"Delete a glossary entry","tags":["glossary"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces__workspaceId__glossary__id_","summary":"Update a glossary entry","tags":["glossary"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"definition":{"type":"string","maxLength":2000},"translations":{"type":"object","additionalProperties":{"type":"string"}},"partOfSpeech":{"type":"string","enum":["noun","verb","adjective","other"],"nullable":true},"caseSensitive":{"type":"boolean"},"forbidden":{"type":"boolean"}}}}}}}},"/v1/workspaces/{workspaceId}/comments":{"get":{"operationId":"get_v1_workspaces__workspaceId__comments","summary":"List comments for a segment","tags":["comments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"segmentId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__comments","summary":"Create a comment on a segment","tags":["comments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"authorId":{"type":"string","minLength":1},"authorName":{"type":"string","minLength":1,"maxLength":200},"content":{"type":"string","minLength":1,"maxLength":5000}},"required":["segmentId","authorId","authorName","content"]}}}}}},"/v1/workspaces/{workspaceId}/comments/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__comments__id_","summary":"Delete a segment comment","tags":["comments"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/languages":{"get":{"operationId":"get_v1_languages","summary":"List all supported languages","tags":["languages"],"parameters":[],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_languages","summary":"Add a supported language","tags":["languages"],"parameters":[],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":2,"maxLength":20},"name":{"type":"string","minLength":1,"maxLength":100},"nativeName":{"type":"string","maxLength":100,"nullable":true}},"required":["code","name"]}}}}}},"/v1/languages/{code}":{"delete":{"operationId":"delete_v1_languages__code_","summary":"Remove a supported language","tags":["languages"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/releases":{"get":{"operationId":"get_v1_workspaces__workspaceId__releases","summary":"List releases by project","tags":["releases"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}},"post":{"operationId":"post_v1_workspaces__workspaceId__releases","summary":"Create a release (snapshot of approved translations)","tags":["releases"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/releases/distribution":{"get":{"operationId":"get_v1_workspaces__workspaceId__releases_distribution","summary":"Get OTA distribution for a project","tags":["releases"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/releases/distribution/regenerate":{"post":{"operationId":"post_v1_workspaces__workspaceId__releases_distribution_regenerate","summary":"Regenerate OTA distribution access key","tags":["releases"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/releases/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__releases__id_","summary":"Delete a release","tags":["releases"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/public/v1/ota/{accessKey}/bundles":{"get":{"operationId":"get_public_v1_ota__accessKey__bundles","summary":"OTA: translation bundles for all languages","tags":["ota"],"parameters":[{"name":"accessKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":""}}}},"/public/v1/ota/{accessKey}/bundles/{language}":{"get":{"operationId":"get_public_v1_ota__accessKey__bundles__language_","summary":"OTA: translation bundle for a language","tags":["ota"],"parameters":[{"name":"accessKey","in":"path","required":true,"schema":{"type":"string"}},{"name":"language","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":""}}}},"/public/v1/ota/{accessKey}/manifest":{"get":{"operationId":"get_public_v1_ota__accessKey__manifest","summary":"OTA: latest release manifest (version + languages)","tags":["ota"],"parameters":[{"name":"accessKey","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations":{"post":{"operationId":"post_v1_workspaces__workspaceId__integrations","summary":"Create integration","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"scope":{"type":"string","enum":["project","workspace"],"default":"project"},"config":{"type":"object","additionalProperties":{"type":"string"}},"credentials":{"type":"object","additionalProperties":{"type":"string"}}},"required":["workspaceId","config","credentials"]}}}}}},"/v1/workspaces/{workspaceId}/integrations/by-project/{projectId}":{"get":{"operationId":"get_v1_workspaces__workspaceId__integrations_by_project__projectId_","summary":"List integrations for a project","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"projectId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/test-direct":{"post":{"operationId":"post_v1_workspaces__workspaceId__integrations_test_direct","summary":"Test connection with provided credentials","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/{id}":{"delete":{"operationId":"delete_v1_workspaces__workspaceId__integrations__id_","summary":"Delete integration","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"get":{"operationId":"get_v1_workspaces__workspaceId__integrations__id_","summary":"Get integration by ID","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}},"put":{"operationId":"put_v1_workspaces__workspaceId__integrations__id_","summary":"Update integration config or credentials","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"config":{"type":"object","additionalProperties":{"type":"string"}},"credentials":{"type":"object","additionalProperties":{"type":"string"}}}}}}}}},"/v1/workspaces/{workspaceId}/integrations/{id}/activate":{"patch":{"operationId":"patch_v1_workspaces__workspaceId__integrations__id__activate","summary":"Activate integration","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/{id}/create-pr":{"post":{"operationId":"post_v1_workspaces__workspaceId__integrations__id__create_pr","summary":"Push translations to a new branch and open a pull request (runs in background, result delivered via WS integration:task)","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/{id}/pause":{"patch":{"operationId":"patch_v1_workspaces__workspaceId__integrations__id__pause","summary":"Pause integration","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/{id}/sync":{"patch":{"operationId":"patch_v1_workspaces__workspaceId__integrations__id__sync","summary":"Trigger sync for a VCS integration (runs in background, result delivered via WS integration:task)","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/integrations/{id}/test":{"patch":{"operationId":"patch_v1_workspaces__workspaceId__integrations__id__test","summary":"Test integration connection","tags":["integrations"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/public/v1/plans":{"get":{"operationId":"get_public_v1_plans","summary":"List available plans with currency prices (public)","tags":["plans"],"parameters":[],"responses":{"200":{"description":""}}}},"/v1/payment/providers":{"get":{"operationId":"get_v1_payment_providers","summary":"List configured payment providers","tags":["plans"],"parameters":[],"responses":{"200":{"description":""}}}},"/v1/plans":{"get":{"operationId":"get_v1_plans","summary":"List available plans","tags":["plans"],"parameters":[],"responses":{"200":{"description":""}}}},"/v1/plans/{id}/providers":{"patch":{"operationId":"patch_v1_plans__id__providers","summary":"Set external price ID for a plan and provider","tags":["plans"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","minLength":1},"priceId":{"type":"string","minLength":1}},"required":["provider","priceId"]}}}}}},"/v1/workspaces/{workspaceId}/subscription":{"get":{"operationId":"get_v1_workspaces__workspaceId__subscription","summary":"Get workspace subscription","tags":["plans"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}}}},"/v1/workspaces/{workspaceId}/subscription/checkout":{"post":{"operationId":"post_v1_workspaces__workspaceId__subscription_checkout","summary":"Create Stripe checkout session, returns redirect URL","tags":["plans"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"provider":{"type":"string","minLength":1},"successUrl":{"type":"string","format":"uri"},"cancelUrl":{"type":"string","format":"uri"}},"required":["planId","provider","successUrl","cancelUrl"]}}}}}},"/v1/workspaces/{workspaceId}/subscription/plan":{"put":{"operationId":"put_v1_workspaces__workspaceId__subscription_plan","summary":"Change workspace plan (free plan only, no payment)","tags":["plans"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"}},"required":["planId"]}}}}}},"/v1/workspaces/{workspaceId}/subscription/portal":{"post":{"operationId":"post_v1_workspaces__workspaceId__subscription_portal","summary":"Create Stripe billing portal session, returns redirect URL","tags":["plans"],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"returnUrl":{"type":"string","format":"uri"}},"required":["returnUrl"]}}}}}},"/public/v1/sdk/segments":{"get":{"operationId":"get_public_v1_sdk_segments","summary":"Batch-fetch segments by key for the SDK","tags":["sdk"],"parameters":[{"name":"keys","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},{"name":"lang","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":10}}],"responses":{"200":{"description":""}}}},"/public/v1/sdk/segments/{id}/translations/{lang}":{"patch":{"operationId":"patch_public_v1_sdk_segments__id__translations__lang_","summary":"Update a translation from the SDK (saves as draft)","tags":["sdk"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"lang","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":""}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1}},"required":["text"]}}}}}},"/v1/users/me":{"get":{"operationId":"get_v1_users_me","summary":"Get current authenticated user","tags":["users"],"parameters":[],"responses":{"200":{"description":""}}}}}}