Ditto (dittowords.com) Variants API
The Variants API from Ditto (dittowords.com) — 1 operation(s) for variants.
The Variants API from Ditto (dittowords.com) — 1 operation(s) for variants.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dittowords:dittowords-variants-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Dittowords Variants API
version: 1.0.0
description: 'Operations tagged Variants across 2 of this provider''s published API definitions: dittowords-openapi-10-18-23-openapi.json, dittowords-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.dittowords.com/v1
- url: https://api.dittowords.com/v2
tags:
- name: Variants
paths:
/variants:
get:
tags:
- Variants
description: Returns a list of variants in the workspace of the requesting user.
summary: Fetch variants
security:
- ApiKeyAuth: []
responses:
'200':
description: Variants in your workspace
content:
application/json:
schema:
type: array
items:
type: object
properties:
name:
type: string
description:
type: string
apiID:
type: string
required:
- name
- description
- apiID
operationId: getVariants
x-operation-id-source: derived
post:
tags:
- Variants
description: 'Creates one or more variants in the workspace.
A variant is a named alternative that text items and library components can each have their own text for — most often a locale to translate into, but also a tone or brand variation. Creating a variant adds no text on its own; use the text item endpoints to set a text item''s text for that variant.
Read the developer IDs off the response rather than assuming them — a developer ID you don''t specify is generated from the name.'
summary: Create variants
security:
- ApiKeyAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
variants:
type: array
items:
type: object
properties:
name:
type: string
minLength: 1
description: The variant's name. Must be unique within the workspace; 'base' is reserved.
developerId:
type: string
minLength: 1
description: Optional preconfigured developer ID for the variant. Must be unique to the workspace and validate against the workspace Developer ID configuration rules. If omitted, one is generated from the name.
description:
type: string
description: Optional description of what the variant is for.
localeCode:
type: string
enum:
- af
- ar
- ar-ae
- ar-bh
- ar-dz
- ar-eg
- ar-iq
- ar-jo
- ar-kw
- ar-lb
- ar-ly
- ar-ma
- ar-om
- ar-qa
- ar-sa
- ar-sy
- ar-tn
- ar-ye
- az
- be
- bg
- bs
- ca
- cs
- cy
- da
- de
- de-at
- de-ch
- de-li
- de-lu
- el
- en
- en-au
- en-bz
- en-ca
- en-gb
- en-ie
- en-jm
- en-nz
- en-sg
- en-tt
- en-us
- en-za
- es
- es-ar
- es-bo
- es-cl
- es-co
- es-cr
- es-do
- es-ec
- es-gt
- es-hn
- es-mx
- es-ni
- es-pa
- es-pe
- es-pr
- es-py
- es-sv
- es-uy
- es-ve
- et
- eu
- fa
- fi
- fo
- fr
- fr-be
- fr-ca
- fr-ch
- fr-lu
- ga
- gd
- he
- hi
- hr
- hu
- hy
- id
- is
- it
- it-ch
- ja
- ka
- kk
- ko
- ku
- lt
- lv
- mk
- ml
- ms
- mt
- nb
- nl
- nl-be
- nn
- 'no'
- pa
- pl
- pt
- pt-br
- rm
- ro
- ro-md
- ru
- ru-md
- sk
- sl
- sq
- sr
- sv
- sv-fi
- th
- tn
- tr
- ts
- uk
- ur
- ve
- vi
- wen
- xh
- yi
- zh-cn
- zh-hk
- zh-sg
- zh-tw
- zu
description: 'Locale code for the variant, from the set Ditto supports. Casing does not matter on the way in — ''fr-CA'' and ''fr-ca'' are both accepted — and the code is stored lowercase, which is the form reads return. Not every language-region pairing exists in the set, so pick one of the listed values rather than composing your own. At most one variant per workspace can hold a given locale code. Set this whenever the variant represents a language: translation tools treat it as the authoritative target locale.'
required:
- name
minItems: 1
description: Array of new variants to create
required:
- variants
example:
variants:
- name: Spanish
localeCode: es
- name: Canadian French
developerId: fr-ca
description: French translations for Canada
responses:
'200':
description: Returns the developer IDs of the created variants, in request order
content:
application/json:
schema:
type: object
properties:
developerIds:
type: array
items:
type: string
description: Array of developer IDs for the created variants, in request order
required:
- developerIds
example:
developerIds:
- spanish
- fr-ca
'400':
description: 'Returned when the request body fails validation. Common causes include: the same name, developer ID, or locale code appearing twice in one request; a reserved developer ID.'
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the validation failure
required:
- message
example:
message: 'Duplicate locale codes in request: es'
'409':
description: Returned when a name, developer ID, or locale code is already in use by another variant in the workspace
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the conflict
required:
- message
example:
message: 'Locale code already attached to another variant: es. A locale code can belong to at most one variant.'
operationId: postVariants
x-operation-id-source: derived
patch:
tags:
- Variants
description: 'Updates one or more variants in the workspace, identified by their current developer IDs.
Only provided fields are modified. The whole batch is rejected if any update is invalid.'
summary: Update variants
security:
- ApiKeyAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
updates:
type: array
items:
type: object
properties:
developerId:
type: string
description: The variant's current developer ID
name:
type: string
minLength: 1
description: New name for the variant. If not provided, the name is unchanged.
newDeveloperId:
type: string
minLength: 1
description: 'A new Developer ID for this variant. Must be unique within the workspace and valid according to the workspace''s Developer ID configuration. Renaming a variant does not change its developer ID, so set this only when the key used to refer to the variant should change too. No text is lost or orphaned: text items and library components reference a variant by an internal id, not its developer ID. What has to be updated to match is outside Ditto — CLI output, integration configs, and code naming the old developer ID. Can be set alongside other field changes in the same update object.'
description:
type: string
description: New description for the variant. Pass an empty string to clear it. If not provided, unchanged.
localeCode:
type:
- string
- 'null'
enum:
- af
- ar
- ar-ae
- ar-bh
- ar-dz
- ar-eg
- ar-iq
- ar-jo
- ar-kw
- ar-lb
- ar-ly
- ar-ma
- ar-om
- ar-qa
- ar-sa
- ar-sy
- ar-tn
- ar-ye
- az
- be
- bg
- bs
- ca
- cs
- cy
- da
- de
- de-at
- de-ch
- de-li
- de-lu
- el
- en
- en-au
- en-bz
- en-ca
- en-gb
- en-ie
- en-jm
- en-nz
- en-sg
- en-tt
- en-us
- en-za
- es
- es-ar
- es-bo
- es-cl
- es-co
- es-cr
- es-do
- es-ec
- es-gt
- es-hn
- es-mx
- es-ni
- es-pa
- es-pe
- es-pr
- es-py
- es-sv
- es-uy
- es-ve
- et
- eu
- fa
- fi
- fo
- fr
- fr-be
- fr-ca
- fr-ch
- fr-lu
- ga
- gd
- he
- hi
- hr
- hu
- hy
- id
- is
- it
- it-ch
- ja
- ka
- kk
- ko
- ku
- lt
- lv
- mk
- ml
- ms
- mt
- nb
- nl
- nl-be
- nn
- 'no'
- pa
- pl
- pt
- pt-br
- rm
- ro
- ro-md
- ru
- ru-md
- sk
- sl
- sq
- sr
- sv
- sv-fi
- th
- tn
- tr
- ts
- uk
- ur
- ve
- vi
- wen
- xh
- yi
- zh-cn
- zh-hk
- zh-sg
- zh-tw
- zu
- null
description: 'Locale code for the variant, from the set Ditto supports. Casing does not matter on the way in — ''fr-CA'' and ''fr-ca'' are both accepted — and the code is stored lowercase, which is the form reads return. Not every language-region pairing exists in the set, so pick one of the listed values rather than composing your own. At most one variant per workspace can hold a given locale code. Set this whenever the variant represents a language: translation tools treat it as the authoritative target locale. Moving a locale onto a different variant re-points the variant-scoped style guides and AI translation targeting that resolve a locale to a variant. Pass null to clear it. If not provided, unchanged.'
required:
- developerId
minItems: 1
description: Array of updates to variants
required:
- updates
example:
updates:
- developerId: spanish
description: Spanish translations for Mexico
localeCode: es-mx
- developerId: fr-ca
name: French (Canada)
newDeveloperId: french-canada
responses:
'200':
description: Returns success status of the update operation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
description: Indicates whether the update was successful
required:
- success
example:
success: true
'400':
description: 'Returned when the request body fails validation. Common causes include: an update that changes nothing; the same value being claimed by two updates in one request; a reserved developer ID.'
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the validation failure
required:
- message
example:
message: 'Duplicate new developer IDs in request: french-canada'
'404':
description: Returned when a developer ID does not match any existing variant in the workspace
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the validation failure
required:
- message
example:
message: 'Variants not found: spanish'
'409':
description: Returned when a name, developer ID, or locale code an update claims is already held by another variant in the workspace
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the conflict
required:
- message
example:
message: 'Couldn''t update variant "spanish": Variant with same name already exists!'
operationId: patchVariants
x-operation-id-source: derived
delete:
tags:
- Variants
description: Deletes variants from the workspace by their developer IDs. This can't be undone.
summary: Delete variants
security:
- ApiKeyAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
developerIds:
type: array
items:
type: string
minItems: 1
description: Developer IDs of the variants to delete. A variant can't be deleted while any text item or library component still has text for it, and one such variant rejects the whole batch. Style guides scoped to a deleted variant survive but stop being variant-scoped.
required:
- developerIds
example:
developerIds:
- fr-ca
responses:
'200':
description: Returns success status of the deletion operation
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
description: Indicates whether the deletion was successful
required:
- success
example:
success: true
'400':
description: Returned when a text item or library component still has text for a variant, or the variant is attached to a legacy project or component
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the validation failure
required:
- message
example:
message: 'Can''t delete variants while text items or library components still have text for them: fr-ca. Remove that text from every text item and library component first, then retry.'
'404':
description: Returned when a developer ID does not match any existing variant in the workspace
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message describing the validation failure
required:
- message
example:
message: 'Variant not found: fr-ca'
operationId: deleteVariants
x-operation-id-source: derived
servers:
- url: https://api.dittowords.com/v1
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization
x-refined-from:
- dittowords-openapi-10-18-23-openapi.json
- dittowords-openapi.json