Ditto (dittowords.com) Variants API

The Variants API from Ditto (dittowords.com) — 1 operation(s) for variants.

Operations 4

GET /variants Fetch variants #
POST /variants Create variants #
PATCH /variants Update variants #
DELETE /variants Delete variants #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dittowords:dittowords-variants-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

dittowords-variants-api-openapi.yml Raw ↑
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