The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ditto","description":"Developer documentation for Ditto, the source of truth for product text. Scan a codebase to import its strings, then connect coding agents through the Ditto MCP server, link Figma files, and pull localized string files with the CLI.","colors":{"primary":"#E2B103","light":"#F0D164","dark":"#1D1700"},"logo":{"light":"https://mintcdn.com/ditto/A9jN5zv6WG_Dk9hK/logo/ditto_logo.svg?fit=max\u0026auto=format\u0026n=A9jN5zv6WG_Dk9hK\u0026q=85\u0026s=4e38ddaa8955775a191cbe1616e02312","dark":"https://mintcdn.com/ditto/A9jN5zv6WG_Dk9hK/logo/ditto_logo.svg?fit=max\u0026auto=format\u0026n=A9jN5zv6WG_Dk9hK\u0026q=85\u0026s=4e38ddaa8955775a191cbe1616e02312"},"favicon":"https://mintcdn.com/ditto/WgRtoF9rLXWv6hNh/favicon.jpeg?fit=max\u0026auto=format\u0026n=WgRtoF9rLXWv6hNh\u0026q=85\u0026s=011fcbfc2411f0c04ab811e7b701750c","background":{"color":{"dark":"#11141B"}},"navbar":{"links":[{"href":"mailto:support@dittowords.com","label":"Support"}],"primary":{"type":"button","label":"Open App","href":"https://app.dittowords.com"}},"footer":{"socials":{"twitter":"https://twitter.com/dittowords","github":"https://github.com/dittowords","linkedin":"https://www.linkedin.com/company/ditto-app"}},"seo":{"organization":{"id":"https://www.dittowords.com/#organization","name":"Ditto","url":"https://www.dittowords.com","logo":"https://developer.dittowords.com/logo/ditto_logo.svg","sameAs":["https://twitter.com/dittowords","https://github.com/dittowords","https://www.linkedin.com/company/ditto-app"]},"indexing":"navigable"},"contextual":{"options":["copy","view","claude","chatgpt","mcp","cursor","vscode"],"display":"header"},"markdown":{"instructions":["These are Ditto's developer docs. Ditto is a single source of truth for product copy across design, review, localization, and code.","The first step on any codebase is a scan: https://developer.dittowords.com/get-started/scan-your-repo.md. That page also covers reviewing the style guide Ditto drafts from the scan. After it, the follow-on guides are Connect Figma files and Set up localization (under /guides/) and Connect the Ditto MCP (the Setup page of the MCP reference).","Two different MCP servers: the Ditto MCP server at https://api.dittowords.com/v2/mcp gives an agent a workspace's text and style guide rules; the documentation MCP server at https://developer.dittowords.com/mcp searches these docs.","Prefer logging in with a Ditto account (npx -y @dittowords/cli@latest login; OAuth in MCP clients) over API keys. API keys are for CI and headless clients only.","Commands are complete as written and use npx -y @dittowords/cli@latest; nothing needs a global install."]},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help Guides","icon":"book-open-cover","href":"https://help.dittowords.com/en/"},{"anchor":"What's New","icon":"newspaper","href":"https://www.dittowords.com/whats-new"},{"anchor":"Figma Plugin","icon":"figma","href":"https://www.figma.com/community/plugin/798826066406007173/ditto-manage-copy-from-design-to-production"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ditto","hasAudioNarration":false,"actualSubdomain":"ditto","customDomains":["developer.dittowords.com"],"gitSource":{"type":"github","owner":"dittowords","repo":"ditto-app","deployBranch":"master","contentDirectory":"docs-public","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4b3adf49f5b7aedfe29b7","collectionId":"b679a977-0d82-462d-aed1-9ee4962c5f7c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4b3adf49f5b7aedfe29b7"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4b3adf49f5b7aedfe29b7","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Documentation","count":97},{"language":"default","tag":"API Reference","count":68},{"language":"default","tag":"Endpoints","count":66},{"language":"default","tag":"Legacy","count":18},{"language":"default","tag":"Components","count":16},{"language":"default","tag":"Projects","count":8},{"language":"default","tag":"Text Items","count":8},{"language":"default","tag":"CLI Reference","count":7},{"language":"default","tag":"Component Folders","count":6},{"language":"default","tag":"Style guides","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/variables/create-variables","slug":"/api-reference/variables/create-variables","pageMetadata":{"openapi":"openapi.json post /variables","title":"Create variables","description":"Creates variables in your workspace.\n\nThe shape of `data` depends on `type`: string and number take an `example` and an optional `fallback`, hyperlink takes `text` and `url`, list takes an array of strings, and map takes an object of string keys to string values.\n\nEither every variable is created or none is.","href":"/api-reference/variables/create-variables"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Creates variables in your workspace.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The shape of \", _jsx(_components.code, {\n children: \"data\"\n }), \" depends on \", _jsx(_components.code, {\n children: \"type\"\n }), \": string and number take an \", _jsx(_components.code, {\n children: \"example\"\n }), \" and an optional \", _jsx(_components.code, {\n children: \"fallback\"\n }), \", hyperlink takes \", _jsx(_components.code, {\n children: \"text\"\n }), \" and \", _jsx(_components.code, {\n children: \"url\"\n }), \", list takes an array of strings, and map takes an object of string keys to string values.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Either every variable is created or none is.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"openapi.json post /variables","title":"Create variables","description":"Creates variables in your workspace.\n\nThe shape of `data` depends on `type`: string and number take an `example` and an optional `fallback`, hyperlink takes `text` and `url`, list takes an array of strings, and map takes an object of string keys to string values.\n\nEither every variable is created or none is.","href":"/api-reference/variables/create-variables"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Variables"],"description":"Creates variables in your workspace.\n\nThe shape of `data` depends on `type`: string and number take an `example` and an optional `fallback`, hyperlink takes `text` and `url`, list takes an array of strings, and map takes an object of string keys to string values.\n\nEither every variable is created or none is.","summary":"Create variables","security":["e7adbe41-fa27-4469-9be3-d8efc31f60c5"],"requestBody":"02e869b4-c7bd-42e6-a511-655f8c0fc94e","responses":{"200":"99b6e06a-370e-431b-974b-bc0cb0ed5f3e","400":"e25d5864-56fc-447d-bd2a-e8ef8f7cb542"},"method":"post","type":"path","servers":["8892940f-7a15-4835-801c-baeb17547cf7"],"path":"/variables","baseUrlOptions":["https://api.dittowords.com/v2"],"title":"Create variables","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"variables":{"type":"array","items":{"oneOf":[{"type":"object","title":"String","required":["type","data","name"],"properties":{"type":{"type":"string","enum":["string"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"data":{"type":"object","properties":{"example":{"type":"string","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.0.data.example","typeLabel":"string"},"fallback":{"type":"string","uniqueKey":"variables.items.[INDEX].oneOf.0.data.fallback","typeLabel":"string"}},"required":["example"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.0.data","typeLabel":"object"},"name":{"type":"string","pattern":"^[A-Za-z0-9_]+$","description":"The variable's name, which doubles as its developer ID. Letters, numbers, and underscores only, and unique within the workspace.","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.0.name","typeLabel":"string"}},"uniqueKey":"variables.items.[INDEX].oneOf.0","typeLabel":"String · object"},{"type":"object","title":"Number","required":["type","data","name"],"properties":{"type":{"type":"string","enum":["number"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"data":{"type":"object","properties":{"example":{"oneOf":[{"type":"number","title":"Number","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.data.example.oneOf.0","typeLabel":"number"},{"type":"string","title":"String","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.data.example.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.data.example","typeLabel":"number | string"},"fallback":{"oneOf":[{"type":"number","title":"Number","uniqueKey":"variables.items.[INDEX].oneOf.1.data.fallback.oneOf.0","typeLabel":"number"},{"type":"string","title":"String","uniqueKey":"variables.items.[INDEX].oneOf.1.data.fallback.oneOf.1","typeLabel":"string"}],"uniqueKey":"variables.items.[INDEX].oneOf.1.data.fallback","typeLabel":"number | string"}},"required":["example"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.data","typeLabel":"object"},"name":{"type":"string","pattern":"^[A-Za-z0-9_]+$","description":"The variable's name, which doubles as its developer ID. Letters, numbers, and underscores only, and unique within the workspace.","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.1.name","typeLabel":"string"}},"uniqueKey":"variables.items.[INDEX].oneOf.1","typeLabel":"Number · object"},{"type":"object","title":"Hyperlink","required":["type","data","name"],"properties":{"type":{"type":"string","enum":["hyperlink"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"data":{"type":"object","properties":{"text":{"type":"string","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.2.data.text","typeLabel":"string"},"url":{"type":"string","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.2.data.url","typeLabel":"string"}},"required":["text","url"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.2.data","typeLabel":"object"},"name":{"type":"string","pattern":"^[A-Za-z0-9_]+$","description":"The variable's name, which doubles as its developer ID. Letters, numbers, and underscores only, and unique within the workspace.","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.2.name","typeLabel":"string"}},"uniqueKey":"variables.items.[INDEX].oneOf.2","typeLabel":"Hyperlink · object"},{"type":"object","title":"List","required":["type","data","name"],"properties":{"type":{"type":"string","enum":["list"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.3.type","typeLabel":"enum\u003cstring>"},"data":{"type":"array","items":{"type":"string","uniqueKey":"variables.items.[INDEX].oneOf.3.data.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.3.data","typeLabel":"string[]"},"name":{"type":"string","pattern":"^[A-Za-z0-9_]+$","description":"The variable's name, which doubles as its developer ID. Letters, numbers, and underscores only, and unique within the workspace.","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.3.name","typeLabel":"string"}},"uniqueKey":"variables.items.[INDEX].oneOf.3","typeLabel":"List · object"},{"type":"object","title":"Map","required":["type","data","name"],"properties":{"type":{"type":"string","enum":["map"],"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.4.type","typeLabel":"enum\u003cstring>"},"data":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"variables.items.[INDEX].oneOf.4.data.additionalProperties","typeLabel":"string"},"isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.4.data","typeLabel":"object"},"name":{"type":"string","pattern":"^[A-Za-z0-9_]+$","description":"The variable's name, which doubles as its developer ID. Letters, numbers, and underscores only, and unique within the workspace.","isRequired":true,"uniqueKey":"variables.items.[INDEX].oneOf.4.name","typeLabel":"string"}},"uniqueKey":"variables.items.[INDEX].oneOf.4","typeLabel":"Map · object"}],"uniqueKey":"variables.items.[INDEX]","typeLabel":"String · object | Number · object | Hyperlink · object | List · object | Map · object"},"minItems":1,"description":"Array of new variables to create","isRequired":true,"uniqueKey":"variables","typeLabel":"(String · object | Number · object | Hyperlink · object | List · object | Map · object)[]"}},"required":["variables"],"example":{"variables":[{"name":"user_name","type":"string","data":{"example":"Jane Doe","fallback":"there"}},{"name":"help_link","type":"hyperlink","data":{"text":"Learn more","url":"https://dittowords.com"}}]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"variables":[{"name":"user_name","type":"string","data":{"example":"Jane Doe","fallback":"there"}},{"name":"help_link","type":"hyperlink","data":{"text":"Learn more","url":"https://dittowords.com"}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"99b6e06a-370e-431b-974b-bc0cb0ed5f3e":{"description":"Returns the names of the created variables","content":{"application/json":{"schema":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string","uniqueKey":"names.items.[INDEX]","typeLabel":"string"},"description":"Names of the created variables, in request order","isRequired":true,"uniqueKey":"names","typeLabel":"string[]"}},"required":["names"],"example":{"names":["user_name","help_link"]},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"names":["user_name","help_link"]}}},"exampleType":"generated"}},"exampleType":"generated"},"e25d5864-56fc-447d-bd2a-e8ef8f7cb542":{"description":"Returned when the request body fails validation. Common causes include: a name that isn't unique in the workspace, a name repeated within the request, or data that doesn't match the variable's type.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e7adbe41-fa27-4469-9be3-d8efc31f60c5":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"8892940f-7a15-4835-801c-baeb17547cf7":{"url":"https://api.dittowords.com/v2"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"ditto","siteName":"Ditto","title":"Create variables - Ditto","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-19T17:29:38.673Z","originalFileLocation":"api-reference/variables/create-variables.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates variables in your workspace. The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values. Either every variable is created or none is.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ditto\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create variables - Ditto\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates variables in your workspace. The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values. Either every variable is created or none is.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ditto\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.dittowords.com/api-reference/variables/create-variables\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ditto.mintlify.app/_mintlify/api/og/v2?division=Variables\u0026amp;title=Create+variables\u0026amp;description=Creates+variables+in+your+workspace.%0A%0AThe+shape+of+%60data%60+depends+on+%60type%60%3A+string+and+number+take+an+%60example%60+and+an+optional+%60fallback%60%2C+hyperlink+takes+%60te\u0026amp;theme=cafcf8215feabbb48baf53ae\u0026amp;signature=7eaaab2db883f37845eb3f7575181245a4c3ef3a97aaf4c95416490bdc09fc5e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create variables - Ditto\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates variables in your workspace. The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values. Either every variable is created or none is.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ditto.mintlify.app/_mintlify/api/og/v2?division=Variables\u0026amp;title=Create+variables\u0026amp;description=Creates+variables+in+your+workspace.%0A%0AThe+shape+of+%60data%60+depends+on+%60type%60%3A+string+and+number+take+an+%60example%60+and+an+optional+%60fallback%60%2C+hyperlink+takes+%60te\u0026amp;theme=cafcf8215feabbb48baf53ae\u0026amp;signature=7eaaab2db883f37845eb3f7575181245a4c3ef3a97aaf4c95416490bdc09fc5e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ditto/sayH8aGeMpv32blB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ditto\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#E2B103\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.dittowords.com/api-reference/variables/create-variables\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/variables/create-variables.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.dittowords.com/#organization\",\"name\":\"Ditto\",\"url\":\"https://www.dittowords.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://developer.dittowords.com/logo/ditto_logo.svg\"},\"sameAs\":[\"https://twitter.com/dittowords\",\"https://github.com/dittowords\",\"https://www.linkedin.com/company/ditto-app\"]},{\"@type\":\"WebSite\",\"@id\":\"https://developer.dittowords.com#website\",\"name\":\"Ditto\",\"url\":\"https://developer.dittowords.com\",\"publisher\":{\"@id\":\"https://www.dittowords.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.dittowords.com/api-reference/variables/create-variables#webpage\",\"url\":\"https://developer.dittowords.com/api-reference/variables/create-variables\",\"name\":\"Create variables\",\"description\":\"Creates variables in your workspace. The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values. Either every variable is created or none is.\",\"dateModified\":\"2026-08-19T17:29:38.673Z\",\"isPartOf\":{\"@id\":\"https://developer.dittowords.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.dittowords.com/api-reference/variables/create-variables#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.dittowords.com/api-reference/variables/create-variables#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://developer.dittowords.com/api-reference/authentication\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://developer.dittowords.com/api-reference/activity/get-activity\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Variables\",\"item\":\"https://developer.dittowords.com/api-reference/variables/get-variables\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create variables\",\"item\":\"https://developer.dittowords.com/api-reference/variables/create-variables\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.dittowords.com/api-reference/variables/create-variables#apireference\",\"headline\":\"Create variables\",\"name\":\"Create variables\",\"description\":\"Creates variables in your workspace. The shape of data depends on type: string and number take an example and an optional fallback, hyperlink takes text and url, list takes an array of strings, and map takes an object of string keys to string values. Either every variable is created or none is.\",\"url\":\"https://developer.dittowords.com/api-reference/variables/create-variables\",\"mainEntityOfPage\":{\"@id\":\"https://developer.dittowords.com/api-reference/variables/create-variables#webpage\"},\"dateModified\":\"2026-08-19T17:29:38.673Z\",\"publisher\":{\"@id\":\"https://www.dittowords.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.dittowords.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ditto\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ditto","nav":{"global":{"anchors":[{"anchor":"Help Guides","icon":"book-open-cover","href":"https://help.dittowords.com/en/"},{"anchor":"What's New","icon":"newspaper","href":"https://www.dittowords.com/whats-new"},{"anchor":"Figma Plugin","icon":"figma","href":"https://www.figma.com/community/plugin/798826066406007173/ditto-manage-copy-from-design-to-production"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Start here","pages":[{"title":"Ditto developer documentation","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Scan your repo","href":"/get-started/scan-your-repo"},{"title":"Connect Figma files","href":"/guides/connect-figma-files"},{"title":"Set up localization","href":"/guides/set-up-localization"}]},{"group":"Concepts","pages":[{"title":"Key concepts","href":"/concepts"}]},{"group":"CLI Reference","pages":[{"title":"Install and log in to the Ditto CLI","sidebarTitle":"Install and log in","href":"/cli-reference/authentication"},{"title":"Ditto CLI commands","sidebarTitle":"Commands","href":"/cli-reference/commands"},{"title":"Ditto CLI configuration","sidebarTitle":"Configuration","href":"/cli-reference/configuration"},{"title":"Ditto CLI output files","sidebarTitle":"Files","href":"/cli-reference/files"}]},{"group":"API Reference","pages":[{"title":"Ditto API authentication","sidebarTitle":"Authentication","href":"/api-reference/authentication"},{"group":"Endpoints","pages":[{"group":"Activity","pages":[{"openapi":"openapi.json get /activity","title":"Fetch activity","href":"/api-reference/activity/get-activity"}]},{"group":"Bases","tag":"BETA","pages":[{"openapi":"openapi.json get /bases","tag":"BETA","title":"Fetch bases","href":"/api-reference/bases/get-bases"},{"openapi":"openapi.json get /bases/{baseId}","tag":"BETA","title":"Fetch a base","href":"/api-reference/bases/get-base"},{"openapi":"openapi.json post /bases","tag":"BETA","title":"Create bases","href":"/api-reference/bases/create-bases"},{"openapi":"openapi.json patch /bases/{baseId}","tag":"BETA","title":"Update a base","href":"/api-reference/bases/patch-bases"}]},{"group":"Components","pages":[{"openapi":"openapi.json get /components","title":"Fetch components","href":"/api-reference/components/get-components"},{"openapi":"openapi.json get /components/export","title":"Export components","href":"/api-reference/components/export-components"},{"openapi":"openapi.json post /components","title":"Create components","href":"/api-reference/components/create-components"},{"openapi":"openapi.json patch /components","title":"Update components","href":"/api-reference/components/patch-components"},{"openapi":"openapi.json delete /components","title":"Delete components","href":"/api-reference/components/delete-components"},{"group":"Text Item Linking","pages":[{"openapi":"openapi.json post /components/publish","title":"Publish a text item to the library","href":"/api-reference/components/publish-component"},{"openapi":"openapi.json patch /components/link","title":"Link text items to a component","href":"/api-reference/components/link-components"},{"openapi":"openapi.json patch /components/unlink","title":"Unlink text items from a component","href":"/api-reference/components/unlink-components"}]},{"group":"Versioning","pages":[{"openapi":"openapi.json get /components/staged","title":"Fetch unpublished component changes","href":"/api-reference/components/get-unpublished-component-changes"},{"openapi":"openapi.json patch /components/staged","title":"Save unpublished component changes","href":"/api-reference/components/save-unpublished-component-changes"},{"openapi":"openapi.json delete /components/staged","title":"Discard unpublished component changes","href":"/api-reference/components/discard-unpublished-component-changes"},{"openapi":"openapi.json post /components/staged/publish","title":"Publish component changes","href":"/api-reference/components/publish-component-changes"},{"openapi":"openapi.json patch /components/upgrade","title":"Upgrade component instances","href":"/api-reference/components/upgrade-component-instances"}]}]},{"group":"Component Folders","pages":[{"openapi":"openapi.json get /componentFolders","title":"Fetch component folders","href":"/api-reference/component-folders/get-component-folders"},{"openapi":"openapi.json post /componentFolders","title":"Create component folders","href":"/api-reference/component-folders/create-component-folders"},{"openapi":"openapi.json patch /componentFolders","title":"Update component folders","href":"/api-reference/component-folders/patch-component-folders"},{"openapi":"openapi.json delete /componentFolders","title":"Delete component folders","href":"/api-reference/component-folders/delete-component-folders"}]},{"group":"Projects","pages":[{"openapi":"openapi.json get /projects","title":"Fetch projects","href":"/api-reference/projects/get-projects"},{"openapi":"openapi.json post /projects","title":"Create a project","href":"/api-reference/projects/create-projects"},{"openapi":"openapi.json patch /projects/{projectId}","title":"Update a project","href":"/api-reference/projects/patch-projects"},{"openapi":"openapi.json post /projects/{projectId}/publish","tag":"BETA","title":"Publish to base","href":"/api-reference/projects/publish-project"},{"openapi":"openapi.json post /projects/{projectId}/updateFromBase","tag":"BETA","sidebarTitle":"Update from base","title":"Update text items from base","href":"/api-reference/projects/update-text-items-from-base"}]},{"group":"Project Blocks","pages":[{"openapi":"openapi.json get /projectBlocks","title":"Fetch project blocks","href":"/api-reference/project-blocks/get-project-blocks"},{"openapi":"openapi.json post /projectBlocks","title":"Create project blocks","href":"/api-reference/project-blocks/create-project-blocks"},{"openapi":"openapi.json patch /projectBlocks","title":"Update project blocks","href":"/api-reference/project-blocks/patch-project-blocks"},{"openapi":"openapi.json delete /projectBlocks","title":"Delete project blocks","href":"/api-reference/project-blocks/delete-project-blocks"}]},{"group":"Statuses","pages":[{"openapi":"openapi.json get /statuses","title":"Fetch statuses","href":"/api-reference/statuses/get-statuses"}]},{"group":"Style guides","pages":[{"title":"Get style guides","openapi":"openapi.json get /styleguides","href":"/api-reference/styleguides/get-styleguides"},{"openapi":"openapi.json post /styleguides","title":"Create a style guide","href":"/api-reference/styleguides/create-styleguides"},{"openapi":"openapi.json patch /styleguides","title":"Update a style guide","href":"/api-reference/styleguides/patch-styleguides"},{"openapi":"openapi.json post /styleguides/rules","title":"Create style guide rules","href":"/api-reference/styleguides/create-styleguide-rules"},{"openapi":"openapi.json patch /styleguides/rules","title":"Update style guide rules","href":"/api-reference/styleguides/patch-styleguide-rules"},{"openapi":"openapi.json delete /styleguides/rules","title":"Delete style guide rules","href":"/api-reference/styleguides/delete-styleguide-rules"}]},{"group":"Text Items","pages":[{"openapi":"openapi.json get /textItems","title":"Fetch text items","href":"/api-reference/text-items/get-text-items"},{"openapi":"openapi.json get /textItems/export","title":"Export text items","href":"/api-reference/text-items/export-text-items"},{"openapi":"openapi.json post /textItems","title":"Create text items","href":"/api-reference/text-items/create-text-items"},{"openapi":"openapi.json post /textItems/fromBase","tag":"BETA","title":"Create text items from a base","href":"/api-reference/text-items/create-text-items-from-base"},{"openapi":"openapi.json patch /textItems","title":"Update text items","href":"/api-reference/text-items/patch-text-items"},{"openapi":"openapi.json put /textItems","title":"Update text items","href":"/api-reference/text-items/update-text-items"},{"openapi":"openapi.json delete /textItems","title":"Delete text items","href":"/api-reference/text-items/delete-text-items"},{"openapi":"openapi.json post /textItems/linkFigmaNodes","title":"Link Figma nodes to text items","href":"/api-reference/text-items/link-figma-nodes"}]},{"group":"Variables","pages":[{"openapi":"openapi.json get /variables","title":"Fetch variables","description":"Returns a list of the variables in the workspace.","href":"/api-reference/variables/get-variables"},{"openapi":"openapi.json post /variables","title":"Create variables","href":"/api-reference/variables/create-variables"},{"openapi":"openapi.json patch /variables","title":"Update variables","description":"Renames variables or changes their type or value.\n\nEither every update is applied or none is.","href":"/api-reference/variables/patch-variables"},{"openapi":"openapi.json delete /variables","title":"Delete variables","href":"/api-reference/variables/delete-variables"}]},{"group":"Variants","pages":[{"openapi":"openapi.json get /variants","title":"Fetch variants","href":"/api-reference/variants/get-variants"},{"openapi":"openapi.json post /variants","title":"Create variants","href":"/api-reference/variants/create-variants"},{"openapi":"openapi.json patch /variants","title":"Update variants","href":"/api-reference/variants/patch-variants"},{"openapi":"openapi.json delete /variants","title":"Delete variants","href":"/api-reference/variants/delete-variants"}]}]}]},{"group":"String Formats","pages":[{"title":"JSON","icon":"js","href":"/string-formats/json"},{"title":"iOS string formats","sidebarTitle":"iOS Strings","icon":"apple","href":"/string-formats/ios"},{"title":"Android XML string format","sidebarTitle":"Android XML","icon":"android","href":"/string-formats/android"}]},{"group":"MCP Reference","pages":[{"title":"Ditto MCP server overview","sidebarTitle":"Overview","href":"/mcp-reference/overview"},{"title":"Connect the Ditto MCP","sidebarTitle":"Setup","href":"/guides/connect-the-mcp"},{"title":"Ditto MCP tools","sidebarTitle":"Tools","href":"/mcp-reference/tools"},{"title":"Agent instructions","href":"/guides/agent-instructions"}]},{"group":"Ditto Specs CLI","pages":[{"title":"Ditto Specs overview","sidebarTitle":"Overview","href":"/ditto-specs-cli-reference/overview"},{"title":"Ditto Specs CLI setup","sidebarTitle":"Setup","href":"/ditto-specs-cli-reference/setup"},{"title":"Ditto Specs CLI commands","sidebarTitle":"Commands","href":"/ditto-specs-cli-reference/commands"},{"title":"Ditto Spec Files","sidebarTitle":"Spec files","href":"/ditto-specs-cli-reference/spec-files"},{"title":"Ditto Specs agent skills","sidebarTitle":"Agent skills","href":"/ditto-specs-cli-reference/agent-skills"}]},{"group":"Additional Tools","pages":[{"title":"GitHub PR Review Bot","href":"/additional-tools/github-pr-review-bot"},{"title":"Webhooks","href":"/additional-tools/webhooks"},{"title":"GitHub Action","href":"/additional-tools/gh-action"}]},{"group":"Legacy","pages":[{"group":"API Reference","pages":[{"title":"Legacy API authentication","sidebarTitle":"Authentication","href":"/legacy/api-reference-legacy/authentication"},{"group":"Endpoints","pages":[{"group":"Components","pages":[{"openapi":"openapi-legacy.json get /components","title":"Fetch component text","href":"/legacy/api-reference-legacy/components/fetch-component-text"},{"openapi":"openapi-legacy.json post /components/file","title":"Import components via a file","href":"/legacy/api-reference-legacy/components/import-components-via-a-file"},{"openapi":"openapi-legacy.json put /components","title":"Update component text variant","href":"/legacy/api-reference-legacy/components/update-component-text-variant"}]},{"group":"Component Folders","pages":[{"openapi":"openapi-legacy.json get /component-folders","title":"Fetch component folders","href":"/legacy/api-reference-legacy/components-folders/fetch-component-folders"},{"openapi":"openapi-legacy.json get /component-folders/{api_id}/components","title":"Fetch component text by component folder","href":"/legacy/api-reference-legacy/components-folders/fetch-component-text-by-component-folder"}]},{"group":"Projects","pages":[{"openapi":"openapi-legacy.json get /projects/{id}/components","title":"Fetch component text by project id","href":"/legacy/api-reference-legacy/projects/fetch-component-text-by-project-id"},{"openapi":"openapi-legacy.json get /projects","title":"Fetch projects","href":"/legacy/api-reference-legacy/projects/fetch-projects"},{"openapi":"openapi-legacy.json get /projects/{id}","title":"Fetch text by project id","href":"/legacy/api-reference-legacy/projects/fetch-text-by-project-id"}]},{"group":"Project Folders","pages":[{"openapi":"openapi-legacy.json get /project-folders","title":"Fetch project folders","href":"/legacy/api-reference-legacy/project-folders/fetch-project-folders"},{"openapi":"openapi-legacy.json get /project-folders/{folder_id}/projects","title":"Fetch projects by project folder id","href":"/legacy/api-reference-legacy/project-folders/fetch-projects-by-project-folder-id"}]},{"group":"Variables","pages":[{"openapi":"openapi-legacy.json get /variables","title":"Fetch variables","href":"/legacy/api-reference-legacy/variables/fetch-variables"}]},{"group":"Variants","pages":[{"openapi":"openapi-legacy.json get /variants","title":"Fetch variants","href":"/legacy/api-reference-legacy/variants/fetch-variants"}]}]}]},{"group":"CLI Reference","pages":[{"title":"Legacy CLI installation","sidebarTitle":"Installation","href":"/legacy/cli-reference-legacy/authentication"},{"title":"Legacy CLI configuration","sidebarTitle":"Configuration","href":"/legacy/cli-reference-legacy/configuration"},{"title":"Legacy CLI output files","sidebarTitle":"Files","href":"/legacy/cli-reference-legacy/files"}]},{"title":"Legacy tools","href":"/legacy/legacy-tools"},{"title":"Example apps","href":"/example-apps"}]}]},{"tab":"Feedback \u0026 Support","pages":[{"title":"Feedback \u0026 Support","href":"/feedback-support/feedback-support"}]}]},"basePath":"","title":"Create variables - Ditto","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}