{"openapi":"3.1.0","info":{"title":"Universally Platform API","description":"Manage your Universally workspace, sites, languages, translations, and glossaries from your own code.\n\n## Authentication\n\nEvery request needs a **Platform API key** in the `X-API-Key` header. A Platform key starts with `pak_` and you create it in the dashboard under **Workspace → API Keys**. Each key belongs to one workspace and only does what you allowed when you created it.\n\nThis is a different key from the one your website uses to serve translations. That key (the site/translator key) lives in your site settings and only works against the translator API — it will not work here, and a Platform key will not work there.","version":"1.0.0"},"tags":[{"name":"Workspace","description":"Your workspace is the account that owns your sites, members, and billing. An API key belongs to one workspace, so these endpoints take no ID — they act on the key's own workspace."},{"name":"Sites","description":"A site is a website you're translating with Universally — one domain, one source language, and the target languages you turn on. Most of the API hangs off a site, addressed by its ID."},{"name":"Languages","description":"The languages a site is translated into. Every site has one source language plus any number of target languages, which you can add, remove, or switch on and off."},{"name":"Strings","description":"The individual pieces of text Universally pulled from your site — the source text and its translation in each language. This is where you read and edit translations."},{"name":"Glossary","description":"Per-site rules that tell the translator how to handle specific terms — words to leave untouched (like a brand name) or always translate a set way."},{"name":"Pages","description":"The pages Universally has seen on your site, based on where strings showed up. Handy for browsing strings grouped by where they appear."}],"servers":[{"url":"https://api.universally.com","description":"Universally API"}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your Platform API key (starts with `pak_`). Create one in the dashboard under Workspace → API Keys. This is not your site/translator key — that one only works against the translator API."}},"schemas":{}},"security":[{"apiKeyAuth":[]}],"paths":{"/workspace":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getWorkspace","tags":["Workspace"],"parameters":[],"summary":"Get your workspace","description":"Returns the workspace this API key belongs to. There's no ID to pass — a key only ever points at one workspace.","security":[{"apiKeyAuth":[]}]},"put":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"putWorkspace","tags":["Workspace"],"parameters":[],"summary":"Update your workspace","description":"Updates the workspace this API key belongs to, like its name. You can't change security settings such as the 2FA requirement with an API key.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":48},"requireTwoFactor":{"type":"boolean"}}}}}}}},"/workspace/usage":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getWorkspaceUsage","tags":["Workspace"],"parameters":[],"summary":"Get your workspace usage","description":"Returns your workspace's plan, its limits, and what you've consumed so far: translated words, characters, request count, and active sites. Limits include any addons on the subscription and are always positive numbers.","security":[{"apiKeyAuth":[]}]}},"/sites":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSites","tags":["Sites"],"parameters":[],"summary":"Create a site","description":"Creates a site in the workspace this API key belongs to. Don't send a workspaceId — it's taken from the key.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1,"maxLength":100},"sourceLanguage":{"type":"string"},"tech":{"type":"string","enum":["wordpress","website","lovable","framer","webflow","tilda","duda","squarespace","weebly","shopify","app","astro"]},"subdomain":{"type":"boolean"},"servingMode":{"type":"string","enum":["plugin","shopify","subdomain","javascript","domain","sdk"]}},"required":["name","sourceLanguage","tech"]}}}}},"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSites","tags":["Sites"],"parameters":[],"summary":"List sites","description":"Lists the sites in your workspace.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteId","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get a site","description":"Returns a single site's details.","security":[{"apiKeyAuth":[]}]},"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteId","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Update a site","description":"Updates a site's settings. Send only the fields you want to change.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1,"maxLength":100},"sourceLanguage":{"type":"string"},"includeCssSelectors":{"type":"array","items":{"type":"string"}},"excludeCssSelectors":{"type":"array","items":{"type":"string"}},"excludeLinkLocalization":{"type":"array","items":{"type":"string"}},"excludePages":{"type":"array","items":{"type":"string"}},"tech":{"type":"string","enum":["wordpress","website","lovable","framer","webflow","tilda","duda","squarespace","weebly","shopify","app","astro"]},"subdomain":{"type":"boolean"},"servingMode":{"type":"string","enum":["plugin","shopify","subdomain","javascript","domain","sdk"]},"autoRedirect":{"type":"object","properties":{"enabled":{"type":"boolean"},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-z]{2,3}(-[a-z0-9]{2,8}){0,3}$"},"additionalProperties":{"type":"string","minLength":2}}},"required":["enabled","overrides"]}}}}}}},"put":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"putSitesBySiteId","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Update a site","description":"Updates a site's settings.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1,"maxLength":100},"sourceLanguage":{"type":"string"},"includeCssSelectors":{"type":"array","items":{"type":"string"}},"excludeCssSelectors":{"type":"array","items":{"type":"string"}},"excludeLinkLocalization":{"type":"array","items":{"type":"string"}},"excludePages":{"type":"array","items":{"type":"string"}},"tech":{"type":"string","enum":["wordpress","website","lovable","framer","webflow","tilda","duda","squarespace","weebly","shopify","app","astro"]},"subdomain":{"type":"boolean"},"servingMode":{"type":"string","enum":["plugin","shopify","subdomain","javascript","domain","sdk"]},"autoRedirect":{"type":"object","properties":{"enabled":{"type":"boolean"},"overrides":{"type":"object","propertyNames":{"type":"string","pattern":"^[a-z]{2,3}(-[a-z0-9]{2,8}){0,3}$"},"additionalProperties":{"type":"string","minLength":2}}},"required":["enabled","overrides"]}}}}}}},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteId","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Delete a site","description":"Deletes a site and everything under it. This can't be undone.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/wp-platform":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdWp-platform","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get site WordPress.com platform status","description":"Returns this site's WordPress.com platform connection status.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/public-key":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdPublic-key","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get site public key","description":"Returns this site's public key (pk_...), the one in its install snippet. The private key is never returned.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/languages":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdLanguages","tags":["Languages"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"List site languages","description":"Lists the languages this site is translated into.","security":[{"apiKeyAuth":[]}]},"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdLanguages","tags":["Languages"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Add a site language","description":"Adds a target language to the site.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2},"region":{"type":"string"},"url":{"type":"string","minLength":2}},"required":["lang","region","url"]}}}}},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteIdLanguages","tags":["Languages"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Remove a site language","description":"Removes a target language from the site.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"region":{"type":"string"}},"required":["region"]}}}}}},"/sites/{siteId}/languages/{variant}/toggle":{"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteIdLanguagesByVariantToggle","tags":["Languages"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"variant","required":true}],"summary":"Toggle a language","description":"Enables or disables one of the site's languages.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/languages/{variant}":{"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteIdLanguagesByVariant","tags":["Languages"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"variant","required":true}],"summary":"Update a site language","description":"Updates settings for one of the site's languages.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"region":{"type":"string"},"url":{"type":"string","minLength":2}}}}}}}},"/sites/{siteId}/analytics/requests":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdAnalyticsRequests","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get site request analytics","description":"Returns translation-request counts for this site over time.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/analytics/translations":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdAnalyticsTranslations","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get site translation analytics","description":"Returns how much of this site has been translated, by strings and words.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/analytics/top-urls":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdAnalyticsTop-urls","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get site top URLs analytics","description":"Returns this site's most-requested URLs.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/search":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdSearch","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Search site strings","description":"Searches this site's strings and translations for a term.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/status":{"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteIdStatus","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Enable or disable a site","description":"Turns a site on or off. Enabling fails with PLAN_LIMIT_REACHED when the workspace already has as many active sites as its plan allows.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["active","disabled"]}},"required":["status"]}}}}}},"/sites/{siteId}/cache/invalidate":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdCacheInvalidate","tags":["Sites"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Invalidate site cache","description":"Clears this site's translation cache so the next requests are served fresh.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/glossary":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdGlossary","tags":["Glossary"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"List glossary rules","description":"Lists this site's glossary rules. A rule tells the translator how to handle a specific term.","security":[{"apiKeyAuth":[]}]},"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdGlossary","tags":["Glossary"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Create a glossary rule","description":"Adds a glossary rule for a term.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceTerm":{"type":"string","minLength":1,"maxLength":200},"type":{"type":"string","enum":["keep","translate"]},"translation":{"default":null,"anyOf":[{"type":"string"},{"type":"null"}]},"languageCode":{"default":"*","type":"string","minLength":1},"caseSensitive":{"default":true,"type":"boolean"},"applyToWorkspace":{"default":false,"type":"boolean"},"matchType":{"default":"literal","type":"string","enum":["literal","pattern"]}},"required":["sourceTerm","type"]}}}}}},"/sites/{siteId}/glossary/{ruleId}":{"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteIdGlossaryByRuleId","tags":["Glossary"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"ruleId","required":true}],"summary":"Update a glossary rule","description":"Updates a glossary rule.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"sourceTerm":{"type":"string","minLength":1,"maxLength":200},"type":{"type":"string","enum":["keep","translate"]},"translation":{"anyOf":[{"type":"string"},{"type":"null"}]},"languageCode":{"type":"string","minLength":1},"caseSensitive":{"type":"boolean"},"applyToWorkspace":{"type":"boolean"},"matchType":{"type":"string","enum":["literal","pattern"]}}}}}}},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteIdGlossaryByRuleId","tags":["Glossary"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"ruleId","required":true}],"summary":"Delete a glossary rule","description":"Deletes a glossary rule.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/pages":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdPages","tags":["Pages"],"parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9a-f]{32}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"List pages","description":"Lists the pages we've seen on this site, grouped from where strings were found.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/pages/{pageId}/strings":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdPagesByPageIdStrings","tags":["Pages"],"parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9a-f]{32}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["missing","unreviewed","verified","untranslatable"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2}},{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"pageId","required":true}],"summary":"List a page's strings","description":"Lists the source strings that appear on a single page.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdStrings","tags":["Strings"],"parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"pageUrl","in":"query","required":false,"schema":{"type":"string"}},{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["missing","unreviewed","verified","untranslatable"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","pattern":"^[0-9a-f]{32}$"}},{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"List source strings for a site","description":"Lists the source strings found on this site, each with its translations. Paginated; you can filter by language or approval status.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/status-counts":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdStringsStatus-counts","tags":["Strings"],"parameters":[{"name":"lang","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":20}},{"name":"pageUrl","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2}},{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Count strings per status","description":"Counts for every status tab in one call, so the numbers cannot disagree with each other.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/statuses":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsStatuses","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get translation statuses for a set of hashes","description":"Returns the translation status of each given string hash in one language. A hash with no translation in that language comes back as null; a hash that is not a known source string is omitted.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"hashes":{"minItems":1,"maxItems":2000,"type":"array","items":{"type":"string","pattern":"^[0-9a-f]{32}$"}}},"required":["lang","hashes"]}}}}}},"/sites/{siteId}/strings/{hash}":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdStringsByHash","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true}],"summary":"Get a source string by hash","description":"Fetches a single source string, and its translations, by its hash.","security":[{"apiKeyAuth":[]}]},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteIdStringsByHash","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true}],"summary":"Delete a source string","description":"Deletes a source string along with all of its translations.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}":{"patch":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"patchSitesBySiteIdStringsByHashTranslationsByLang","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Update a translation","description":"Sets the translation for a string in one language, replacing whatever is there now.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000}},"required":["text"]}}}}},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteIdStringsByHashTranslationsByLang","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Delete a translation","description":"Deletes the translation for a string in one language. The source string itself stays.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}/approve":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsByHashTranslationsByLangApprove","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Approve a translation","description":"Marks a translation as approved so machine translation won't overwrite it.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}/unapprove":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsByHashTranslationsByLangUnapprove","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Unapprove a translation","description":"Clears the approved flag on a translation.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}/revisions":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdStringsByHashTranslationsByLangRevisions","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"List translation revisions","description":"Lists past versions of a translation, newest first.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}/revisions/{revisionId}/restore":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsByHashTranslationsByLangRevisionsByRevisionIdRestore","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true},{"schema":{"type":"string"},"in":"path","name":"revisionId","required":true}],"summary":"Restore a revision","description":"Restores an earlier revision and makes it the current translation.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/{hash}/translations/{lang}/translate":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsByHashTranslationsByLangTranslate","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Machine-translate a string","description":"Machine-translates a single string into the given language.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/bulk/count":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkCount","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Count strings matching a bulk selector","description":"Counts the strings the given filters match, so a bulk action can be confirmed before it runs.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"pageUrl":{"type":"string"},"filter":{"type":"string","enum":["missing","unreviewed","verified","untranslatable"]},"q":{"type":"string","minLength":2}},"required":["lang"]}}}}}},"/sites/{siteId}/strings/bulk/retranslate":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkRetranslate","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Retranslate all matching strings","description":"Starts a background job that machine-translates every string matching the filters, overwriting the current translations.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"pageUrl":{"type":"string"},"filter":{"type":"string","enum":["missing","unreviewed","verified","untranslatable"]},"q":{"type":"string","minLength":2},"includeVerified":{"default":false,"type":"boolean"}},"required":["lang"]}}}}}},"/sites/{siteId}/strings/bulk/delete":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkDelete","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Delete all matching source strings","description":"Starts a background job that deletes every source string matching the filters, along with all of their translations.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"pageUrl":{"type":"string"},"filter":{"type":"string","enum":["missing","unreviewed","verified","untranslatable"]},"q":{"type":"string","minLength":2}},"required":["lang"]}}}}}},"/sites/{siteId}/strings/bulk/verify-selected":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkVerify-selected","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Mark selected translations as verified","description":"Marks the given translations verified for one language. Already-verified rows, and hashes with no translation, are reported as skipped.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"hashes":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["lang","hashes"]}}}}}},"/sites/{siteId}/strings/bulk/delete-selected":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkDelete-selected","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Delete an explicit set of source strings","description":"Deletes the given source strings, and all of their translations, in one request. For deleting everything matching a filter instead, use /bulk/delete.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20},"hashes":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}}},"required":["lang","hashes"]}}}}}},"/sites/{siteId}/strings/bulk/status":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdStringsBulkStatus","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Get bulk operation status","description":"Returns the progress of the current bulk operation for this project, or idle when none is running.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/strings/bulk/cancel":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdStringsBulkCancel","tags":["Strings"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Cancel the bulk operation","description":"Stops the running bulk operation. Work already completed is kept.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/images":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdImages","tags":["Images"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"pageId","in":"query","required":false,"schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":2000}},{"name":"limit","in":"query","required":false,"schema":{"default":48,"type":"integer","minimum":1,"maximum":100}},{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"List images","description":"Lists images seen on this project, with their replacements per language. Each item may carry thumbUrl (320px) and thumbUrl2x (640px), signed thumbnail URLs on img.universally.com.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/images/upload":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdImagesUpload","tags":["Images"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Upload a replacement image","description":"Stores an image for use as a replacement. JPEG, PNG, WebP or GIF, up to 5 MB.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/images/{hash}":{"get":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"getSitesBySiteIdImagesByHash","tags":["Images"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true}],"summary":"Get an image","description":"One image with its replacements per language.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/images/{hash}/replacements/{lang}":{"put":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"putSitesBySiteIdImagesByHashReplacementsByLang","tags":["Images"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Set an image replacement","description":"Shows a different image for one language, everywhere the original appears.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"uploadId":{"type":"string","minLength":1,"maxLength":300}},"required":["uploadId"],"additionalProperties":false},{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["url"],"additionalProperties":false}]}}}}},"delete":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"deleteSitesBySiteIdImagesByHashReplacementsByLang","tags":["Images"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"},{"schema":{"type":"string"},"in":"path","name":"hash","required":true},{"schema":{"type":"string"},"in":"path","name":"lang","required":true}],"summary":"Remove an image replacement","description":"Shows the original image again for one language.","security":[{"apiKeyAuth":[]}]}},"/sites/{siteId}/editor/preview-token":{"post":{"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{},"message":{"type":"string","nullable":true},"code":{"type":"string"}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"nullable":true},"message":{"type":"string"},"code":{"type":"string"}}}}}}},"operationId":"postSitesBySiteIdEditorPreview-token","tags":["Editor"],"parameters":[{"schema":{"type":"string","default":"{{siteId}}"},"in":"path","name":"siteId","required":true,"example":"{{siteId}}"}],"summary":"Mint a visual-editor preview token","description":"Mints a short-lived signed token the dashboard uses to load the visual editor's preview iframe.","security":[{"apiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":20}},"required":["lang"]}}}}}}},"x-scalar-environments":{"Universally":{"description":"Universally Platform API","variables":{"siteId":{"default":"","description":"The public ID of the site to target. Set it once here; every {{siteId}} field resolves to it."}}}},"x-scalar-active-environment":"Universally"}