Creates a widget for your account: a named record with a type and some starting content, on a canvas of
its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for
it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until
you say otherwise (isDraft: false).
If a step after the widget was saved does not go through, the widget is still created, and
data.warnings says what did not. Read it before relying on the widget.
A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an
organization where you may create widgets (organizationId). Naming anything you cannot use is refused
with 403, and the answer is the same whether it exists or not.
To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget
stays in your account and is yours to edit; the tag lets you list one user’s widgets with getWidgets. The
managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and
MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set
here and does not change afterwards.
This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past
that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the
visitors of a composition leave is kept in the tables of that composition, made when the composition is.
The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not
two.
A unique value (a UUID is fine) that makes a retry of this request safe.
Body
application/json
What a new widget starts from. Only the fields listed here are used. The widget is created without
code: it is a record with a name, a type and some starting content, on a canvas (a new one, unless you
name one of yours). It has no database: what the visitors of a composition leave is kept in the tables
of that composition.
Make the widget for one of your managed users, by Widgetic's id for the user. Send this or managedUserExternalId, not both. The managed user must be yours and active. The widget stays in your account; the tag lets you list one user's widgets and keeps it out of the others' lists. It is set here and does not change afterwards.
The same, by your own identifier for the user, the externalId you gave when you created the managed user (answers show it as externalId). Send this or managedUserId, not both.
Extra information about the answer: where a page sits in a list, the cursor of the next page, or warnings about a call that succeeded with a caveat.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Widgetic","colors":{"primary":"#324E30","light":"#75A568","dark":"#0F210F"},"logo":{"light":"https://mintcdn.com/widgetic/Od-pD6ChvIzhY_fR/brand/logo-light.svg?fit=max\u0026auto=format\u0026n=Od-pD6ChvIzhY_fR\u0026q=85\u0026s=c80ce649cc12d9f206a4ea5d3d2d9d31","dark":"https://mintcdn.com/widgetic/Od-pD6ChvIzhY_fR/brand/logo-dark.svg?fit=max\u0026auto=format\u0026n=Od-pD6ChvIzhY_fR\u0026q=85\u0026s=46708e0c7194a1fa0844613fc8492364"},"favicon":"https://mintcdn.com/widgetic/Od-pD6ChvIzhY_fR/brand/favicon.svg?fit=max\u0026auto=format\u0026n=Od-pD6ChvIzhY_fR\u0026q=85\u0026s=94d26e3e8e9ecd316386c38057803c62","api":{},"footer":{"socials":{"x":"https://x.com/widgetic","github":"https://github.com/widgetic"}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"We couldn't find the page you were looking for.\n\n\u003cCardGroup cols={2}>\n \u003cCard title=\"Documentation\" icon=\"book\" href=\"/docs/introduction\">\n Return to the home page\n \u003c/Card>\n \u003cCard title=\"Quickstart\" icon=\"rocket\" href=\"/docs/quickstart\">\n Get started in minutes\n \u003c/Card>\n \u003cCard title=\"API Reference\" icon=\"code\" href=\"/api-reference/introduction\">\n Explore API endpoints\n \u003c/Card>\n \u003cCard title=\"SDKs\" icon=\"cube\" href=\"/resources/sdks\">\n Explore our SDKs\n \u003c/Card>\n\u003c/CardGroup>\n\n\u003cInfo>\n Think this is a broken link? Email us at [support@widgetic.com](mailto:support@widgetic.com).\n\u003c/Info>"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"widgetic","hasAudioNarration":false,"actualSubdomain":"widgetic","customDomains":["widgetic.com"],"gitSource":{"type":"github","owner":"widgetic","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af081e42ab4a0cc3d7f236c","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":177},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"Partners","count":41},{"language":"default","tag":"Compositions","count":39},{"language":"default","tag":"Workflows","count":19},{"language":"default","tag":"Managed Users","count":18},{"language":"default","tag":"CLI","count":16},{"language":"default","tag":"Partner Integration","count":13},{"language":"default","tag":"Users","count":13},{"language":"default","tag":"Resources","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/widgets/create-widget","slug":"/api-reference/widgets/create-widget","pageMetadata":{"title":"Create Widget","description":"Creates a widget for your account: a named record with a type and some starting content, on a canvas of\nits own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for\nit afterwards. The new widget is yours, and you can list it with `getWidgets`. A widget is a draft until\nyou say otherwise (`isDraft: false`).\n\nIf a step after the widget was saved does not go through, the widget is still created, and\n`data.warnings` says what did not. Read it before relying on the widget.\n\nA widget can be placed on one of your canvases (`canvasId`), in a project you can edit (`projectId`) or in an\norganization where you may create widgets (`organizationId`). Naming anything you cannot use is refused\nwith 403, and the answer is the same whether it exists or not.\n\nTo make the widget for one of your managed users, send `managedUserId` or `managedUserExternalId`. The widget\nstays in your account and is yours to edit; the tag lets you list one user's widgets with `getWidgets`. The\nmanaged user must be yours and active: one that is not yours, or does not exist, is answered with 404 and\n`MANAGED_USER_NOT_FOUND`, and one that is switched off with 409 and `MANAGED_USER_INACTIVE`. The tag is set\nhere and does not change afterwards.\n\nThis call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past\nthat the call is answered with 429 and a `Retry-After`. A widget has no database of its own: what the\nvisitors of a composition leave is kept in the tables of that composition, made when the composition is.\nThe `Idempotency-Key` header is required; send the same key when you retry, so one widget is created, not\ntwo.\n","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /widgets","href":"/api-reference/widgets/create-widget","autogeneratedByOpenApi":true},"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: [_jsxs(_components.p, {\n children: [\"Creates a widget for your account: a named record with a type and some starting content, on a canvas of\\nits own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for\\nit afterwards. The new widget is yours, and you can list it with \", _jsx(_components.code, {\n children: \"getWidgets\"\n }), \". A widget is a draft until\\nyou say otherwise (\", _jsx(_components.code, {\n children: \"isDraft: false\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"If a step after the widget was saved does not go through, the widget is still created, and\\n\", _jsx(_components.code, {\n children: \"data.warnings\"\n }), \" says what did not. Read it before relying on the widget.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A widget can be placed on one of your canvases (\", _jsx(_components.code, {\n children: \"canvasId\"\n }), \"), in a project you can edit (\", _jsx(_components.code, {\n children: \"projectId\"\n }), \") or in an\\norganization where you may create widgets (\", _jsx(_components.code, {\n children: \"organizationId\"\n }), \"). Naming anything you cannot use is refused\\nwith 403, and the answer is the same whether it exists or not.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"To make the widget for one of your managed users, send \", _jsx(_components.code, {\n children: \"managedUserId\"\n }), \" or \", _jsx(_components.code, {\n children: \"managedUserExternalId\"\n }), \". The widget\\nstays in your account and is yours to edit; the tag lets you list one user’s widgets with \", _jsx(_components.code, {\n children: \"getWidgets\"\n }), \". The\\nmanaged user must be yours and active: one that is not yours, or does not exist, is answered with 404 and\\n\", _jsx(_components.code, {\n children: \"MANAGED_USER_NOT_FOUND\"\n }), \", and one that is switched off with 409 and \", _jsx(_components.code, {\n children: \"MANAGED_USER_INACTIVE\"\n }), \". The tag is set\\nhere and does not change afterwards.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past\\nthat the call is answered with 429 and a \", _jsx(_components.code, {\n children: \"Retry-After\"\n }), \". A widget has no database of its own: what the\\nvisitors of a composition leave is kept in the tables of that composition, made when the composition is.\\nThe \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" header is required; send the same key when you retry, so one widget is created, not\\ntwo.\"]\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":{"title":"Create Widget","description":"Creates a widget for your account: a named record with a type and some starting content, on a canvas of\nits own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for\nit afterwards. The new widget is yours, and you can list it with `getWidgets`. A widget is a draft until\nyou say otherwise (`isDraft: false`).\n\nIf a step after the widget was saved does not go through, the widget is still created, and\n`data.warnings` says what did not. Read it before relying on the widget.\n\nA widget can be placed on one of your canvases (`canvasId`), in a project you can edit (`projectId`) or in an\norganization where you may create widgets (`organizationId`). Naming anything you cannot use is refused\nwith 403, and the answer is the same whether it exists or not.\n\nTo make the widget for one of your managed users, send `managedUserId` or `managedUserExternalId`. The widget\nstays in your account and is yours to edit; the tag lets you list one user's widgets with `getWidgets`. The\nmanaged user must be yours and active: one that is not yours, or does not exist, is answered with 404 and\n`MANAGED_USER_NOT_FOUND`, and one that is switched off with 409 and `MANAGED_USER_INACTIVE`. The tag is set\nhere and does not change afterwards.\n\nThis call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past\nthat the call is answered with 429 and a `Retry-After`. A widget has no database of its own: what the\nvisitors of a composition leave is kept in the tables of that composition, made when the composition is.\nThe `Idempotency-Key` header is required; send the same key when you retry, so one widget is created, not\ntwo.\n","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /widgets","href":"/api-reference/widgets/create-widget","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/widgetic/a06e02caee24c9e4/scripts/check-openapi-drift.js","/_mintlify/custom/widgetic/cfc959b865109f94/scripts/generate-code-samples.js","/_mintlify/custom/widgetic/4108e10153588825/scripts/sync-openapi.js","/_mintlify/custom/widgetic/0b8b2a5de38f31ba/scripts/validate-links.js","/_mintlify/custom/widgetic/f948d1cc9e974f48/scripts/__tests__/agentDocsDrift.test.js","/_mintlify/custom/widgetic/5e269cd2108b7191/scripts/check-agent-docs-drift.js","/_mintlify/custom/widgetic/5905b4748e7acd3e/scripts/lib/agentDocsDrift.js","/_mintlify/custom/widgetic/d772e7a3506ca340/scripts/__tests__/openApiServerAddress.test.js","/_mintlify/custom/widgetic/6a746d19cf42793e/scripts/lib/openApiServerAddress.js"],"openApiReferenceData":{"operation":{"operationId":"createWidget","summary":"Create Widget","description":"Creates a widget for your account: a named record with a type and some starting content, on a canvas of\nits own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for\nit afterwards. The new widget is yours, and you can list it with `getWidgets`. A widget is a draft until\nyou say otherwise (`isDraft: false`).\n\nIf a step after the widget was saved does not go through, the widget is still created, and\n`data.warnings` says what did not. Read it before relying on the widget.\n\nA widget can be placed on one of your canvases (`canvasId`), in a project you can edit (`projectId`) or in an\norganization where you may create widgets (`organizationId`). Naming anything you cannot use is refused\nwith 403, and the answer is the same whether it exists or not.\n\nTo make the widget for one of your managed users, send `managedUserId` or `managedUserExternalId`. The widget\nstays in your account and is yours to edit; the tag lets you list one user's widgets with `getWidgets`. The\nmanaged user must be yours and active: one that is not yours, or does not exist, is answered with 404 and\n`MANAGED_USER_NOT_FOUND`, and one that is switched off with 409 and `MANAGED_USER_INACTIVE`. The tag is set\nhere and does not change afterwards.\n\nThis call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past\nthat the call is answered with 429 and a `Retry-After`. A widget has no database of its own: what the\nvisitors of a composition leave is kept in the tables of that composition, made when the composition is.\nThe `Idempotency-Key` header is required; send the same key when you retry, so one widget is created, not\ntwo.\n","tags":["Widgets"],"x-access-level":"user","x-visibility":"public","security":["13cc2cf6-452a-4117-917b-32c2d7a68f0c"],"parameters":["21a262e4-5eb3-4615-9b82-e47efe4a1956"],"requestBody":"686a3792-87ab-4df0-90df-d4f78f2e0c33","responses":{"201":"56cc6a95-a5e0-47f1-87b7-706306704dd3","400":"5b0694f6-7b46-4f3e-a61c-d15d5fad5d91","401":"28009608-a898-4cfe-9b56-ed5709a112e4","403":"a22e915c-0f5f-4d3b-89a8-5b80ad1fce7a","404":"c7c60991-60a7-46db-ace2-2a642ffb1e38","409":"6f0a4903-2dee-4bf8-acf0-491a414a942d","429":"fa52c99e-bb59-4d5a-8697-88f1b60d40d8"},"method":"post","type":"path","servers":["8cdad7e2-72d7-448d-a767-c0ce9882d766"],"path":"/widgets","baseUrlOptions":["https://api.widgetic.com/v1"],"title":"Create Widget","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"21a262e4-5eb3-4615-9b82-e47efe4a1956":{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","isRequired":true,"description":"A unique value (a UUID is fine) that makes a retry of this request safe.","uniqueKey":"","typeLabel":"string"},"description":"A unique value (a UUID is fine) that makes a retry of this request safe."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"What a new widget starts from. Only the fields listed here are used. The widget is created without\ncode: it is a record with a name, a type and some starting content, on a canvas (a new one, unless you\nname one of yours). It has no database: what the visitors of a composition leave is kept in the tables\nof that composition.\n","required":["name","type","content"],"properties":{"name":{"type":"string","minLength":1,"description":"Name of the widget.","example":"New Chart Widget","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"type":{"type":"string","minLength":1,"description":"What kind of widget this is, as a label of your choosing (for example chart, form, gallery).","example":"chart","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"content":{"type":"object","description":"Starting content for the widget. An empty object is fine.","additionalProperties":true,"example":{"chartType":"bar","dataSource":"api"},"isRequired":true,"uniqueKey":"content","typeLabel":"object"},"isPublic":{"type":"boolean","default":false,"description":"Whether the widget is public.","example":false,"uniqueKey":"isPublic","typeLabel":"boolean"},"isDraft":{"type":"boolean","default":true,"description":"Whether the widget starts as a draft. A widget created without this is a draft.","example":false,"uniqueKey":"isDraft","typeLabel":"boolean"},"canvasId":{"type":"string","format":"uuid","description":"Put the widget on this existing canvas instead of a new one. You must own the canvas.","example":"abc12345-def6-7890-ab12-cd3456ef7890","uniqueKey":"canvasId","typeLabel":"string\u003cuuid>"},"projectId":{"type":"string","format":"uuid","description":"Project to file the widget in. You must be able to edit the project.","example":"7c1e2f30-4a5b-4c6d-8e9f-0a1b2c3d4e5f","uniqueKey":"projectId","typeLabel":"string\u003cuuid>"},"organizationId":{"type":"string","format":"uuid","description":"Organization the widget belongs to. You must be a member who may create widgets there.","example":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","uniqueKey":"organizationId","typeLabel":"string\u003cuuid>"},"workspaceType":{"type":"string","enum":["personal","organization"],"description":"Whether the widget lives in your personal workspace or in an organization's.","example":"personal","uniqueKey":"workspaceType","typeLabel":"enum\u003cstring>"},"managedUserId":{"type":"string","format":"uuid","description":"Make the widget for one of your managed users, by Widgetic's id for the user. Send this or `managedUserExternalId`, not both. The managed user must be yours and active. The widget stays in your account; the tag lets you list one user's widgets and keeps it out of the others' lists. It is set here and does not change afterwards.","example":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e","uniqueKey":"managedUserId","typeLabel":"string\u003cuuid>"},"managedUserExternalId":{"type":"string","maxLength":255,"description":"The same, by your own identifier for the user, the `externalId` you gave when you created the managed user (answers show it as `externalId`). Send this or `managedUserId`, not both.","example":"user-8841","uniqueKey":"managedUserExternalId","typeLabel":"string"}},"example":{"name":"New Chart Widget","type":"chart","content":{"chartType":"bar","dataSource":"api"},"isPublic":false,"isDraft":false,"canvasId":"abc12345-def6-7890-ab12-cd3456ef7890","projectId":"7c1e2f30-4a5b-4c6d-8e9f-0a1b2c3d4e5f","organizationId":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","workspaceType":"personal","managedUserId":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e","managedUserExternalId":"user-8841"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"New Chart Widget","type":"chart","content":{"chartType":"bar","dataSource":"api"},"isPublic":false,"isDraft":false,"canvasId":"abc12345-def6-7890-ab12-cd3456ef7890","projectId":"7c1e2f30-4a5b-4c6d-8e9f-0a1b2c3d4e5f","organizationId":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","workspaceType":"personal","managedUserId":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e","managedUserExternalId":"user-8841"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"56cc6a95-a5e0-47f1-87b7-706306704dd3":{"description":"Widget created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"data":{"type":"object","description":"Represents a widget in the system.","example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","creatorId":"a4d8b6e9-3c2d-4a1f-8b9c-5e2d3f4a1b6c","name":"Chart Widget","description":"Interactive chart widget for data visualization","type":"chart","content":{"chartType":"bar","dataSource":"api"},"isPublic":false,"isDraft":true,"shareId":"shwgt_7f1d34acf2","createdAt":"2025-09-15T10:23:00.000Z","updatedAt":"2025-09-16T08:12:45.000Z","jsPath":"/widgets/chart/main.js","canvasId":"9f0c6b54-3e8f-4a2a-8b7d-1c5c6d9e0a1b","repoId":"user/chart-widget","databaseId":"widget_3fa85f64_5717_4562_b3fc_2c963f66afa6","version":1,"lastCommitSha":"a1b2c3d4e5f6g7h8i9j0","organizationId":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","projectFolder":"marketing/q4-launch","workspaceType":"personal","managedUserId":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e"},"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the widget.","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"creatorId":{"type":"string","format":"uuid","description":"ID of the user who created the widget.","example":"a4d8b6e9-3c2d-4a1f-8b9c-5e2d3f4a1b6c","uniqueKey":"data.creatorId","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"Name of the widget.","example":"Chart Widget","uniqueKey":"data.name","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Description of the widget's purpose and functionality.","example":"Interactive chart widget for data visualization","uniqueKey":"data.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Description of the widget's purpose and functionality.","example":"Interactive chart widget for data visualization","uniqueKey":"data.description.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.description","typeLabel":"string | null"},"type":{"type":"string","description":"Type of widget (e.g., chart, form, gallery).","example":"chart","uniqueKey":"data.type","typeLabel":"string"},"content":{"type":"object","description":"Content configuration for the widget.","additionalProperties":true,"example":{"chartType":"bar","dataSource":"api"},"uniqueKey":"data.content","typeLabel":"object"},"isPublic":{"type":"boolean","description":"Whether the widget is publicly available.","example":false,"uniqueKey":"data.isPublic","typeLabel":"boolean"},"isDraft":{"type":"boolean","description":"Whether the widget is a draft.","example":true,"uniqueKey":"data.isDraft","typeLabel":"boolean"},"shareId":{"oneOf":[{"type":"string","description":"Unique ID for sharing the widget publicly.","example":"shwgt_7f1d34acf2","uniqueKey":"data.shareId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Unique ID for sharing the widget publicly.","example":"shwgt_7f1d34acf2","uniqueKey":"data.shareId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.shareId","typeLabel":"string | null"},"createdAt":{"type":"string","format":"date-time","description":"When the widget was created.","example":"2025-09-15T10:23:00.000Z","uniqueKey":"data.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the widget was last updated.","example":"2025-09-16T08:12:45.000Z","uniqueKey":"data.updatedAt","typeLabel":"string\u003cdate-time>"},"jsPath":{"oneOf":[{"type":"string","description":"Path to the JavaScript file for this widget.","example":"/widgets/chart/main.js","uniqueKey":"data.jsPath.oneOf.0","typeLabel":"string"},{"type":"null","description":"Path to the JavaScript file for this widget.","example":"/widgets/chart/main.js","uniqueKey":"data.jsPath.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.jsPath","typeLabel":"string | null"},"canvasId":{"oneOf":[{"type":"string","format":"uuid","description":"ID of the canvas associated with this widget.","example":"9f0c6b54-3e8f-4a2a-8b7d-1c5c6d9e0a1b","uniqueKey":"data.canvasId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"ID of the canvas associated with this widget.","example":"9f0c6b54-3e8f-4a2a-8b7d-1c5c6d9e0a1b","uniqueKey":"data.canvasId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.canvasId","typeLabel":"string\u003cuuid> | null"},"repoId":{"oneOf":[{"type":"string","description":"Repository identifier for source code.","example":"user/chart-widget","uniqueKey":"data.repoId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Repository identifier for source code.","example":"user/chart-widget","uniqueKey":"data.repoId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.repoId","typeLabel":"string | null"},"databaseId":{"oneOf":[{"type":"string","description":"Legacy. The name of a Neon database that an earlier version made for this widget. A widget has no database now (what the visitors of a composition leave is kept in the tables of that composition), so widgets made now have none.","example":"widget_3fa85f64_5717_4562_b3fc_2c963f66afa6","uniqueKey":"data.databaseId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Legacy. The name of a Neon database that an earlier version made for this widget. A widget has no database now (what the visitors of a composition leave is kept in the tables of that composition), so widgets made now have none.","example":"widget_3fa85f64_5717_4562_b3fc_2c963f66afa6","uniqueKey":"data.databaseId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.databaseId","typeLabel":"string | null"},"version":{"oneOf":[{"type":"number","format":"float","description":"Version number of the widget.","example":1,"uniqueKey":"data.version.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Version number of the widget.","example":1,"uniqueKey":"data.version.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.version","typeLabel":"number\u003cfloat> | null"},"lastCommitSha":{"oneOf":[{"type":"string","description":"Latest Git commit SHA of the widget's code repository.","example":"a1b2c3d4e5f6g7h8i9j0","uniqueKey":"data.lastCommitSha.oneOf.0","typeLabel":"string"},{"type":"null","description":"Latest Git commit SHA of the widget's code repository.","example":"a1b2c3d4e5f6g7h8i9j0","uniqueKey":"data.lastCommitSha.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.lastCommitSha","typeLabel":"string | null"},"organizationId":{"oneOf":[{"type":"string","format":"uuid","description":"Organization ID if created in an organization workspace.","example":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","uniqueKey":"data.organizationId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Organization ID if created in an organization workspace.","example":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","uniqueKey":"data.organizationId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.organizationId","typeLabel":"string\u003cuuid> | null"},"projectFolder":{"oneOf":[{"type":"string","description":"Project folder reference for organization widgets.","example":"marketing/q4-launch","uniqueKey":"data.projectFolder.oneOf.0","typeLabel":"string"},{"type":"null","description":"Project folder reference for organization widgets.","example":"marketing/q4-launch","uniqueKey":"data.projectFolder.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.projectFolder","typeLabel":"string | null"},"workspaceType":{"oneOf":[{"type":"string","enum":["personal","organization"],"description":"Workspace type when created.","example":"personal","uniqueKey":"data.workspaceType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["personal","organization"],"description":"Workspace type when created.","example":"personal","uniqueKey":"data.workspaceType.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.workspaceType","typeLabel":"enum\u003cstring> | null"},"managedUserId":{"oneOf":[{"type":"string","format":"uuid","description":"The managed user the widget was made for, or null when it is your own. List one managed user's widgets with the `managedUserId` or `managedUserExternalId` query parameter of `getWidgets`.","example":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e","uniqueKey":"data.managedUserId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"The managed user the widget was made for, or null when it is your own. List one managed user's widgets with the `managedUserId` or `managedUserExternalId` query parameter of `getWidgets`.","example":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e","uniqueKey":"data.managedUserId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.managedUserId","typeLabel":"string\u003cuuid> | null"},"warnings":{"type":"array","description":"What did not go through, when the widget was created without all of its parts (for example, the canvas it sits on could not be told that this is its main widget). Absent when everything did.","items":{"type":"string","uniqueKey":"data.warnings.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.warnings","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","description":"Extra information about the answer: where a page sits in a list, the cursor of the next page, or warnings about a call that succeeded with a caveat.","additionalProperties":true,"properties":{"page":{"type":"integer","description":"The page that was read, counting from 1.","example":1,"uniqueKey":"meta.page","typeLabel":"integer"},"size":{"type":"integer","description":"How many items one page holds.","example":20,"uniqueKey":"meta.size","typeLabel":"integer"},"total":{"type":"integer","description":"How many items the whole list has.","example":135,"uniqueKey":"meta.total","typeLabel":"integer"},"limit":{"type":"integer","description":"The same as `size`.","example":20,"uniqueKey":"meta.limit","typeLabel":"integer"},"offset":{"type":"integer","description":"How many items come before this page.","example":0,"uniqueKey":"meta.offset","typeLabel":"integer"},"hasNextPage":{"type":"boolean","example":true,"uniqueKey":"meta.hasNextPage","typeLabel":"boolean"},"hasPreviousPage":{"type":"boolean","example":false,"uniqueKey":"meta.hasPreviousPage","typeLabel":"boolean"},"nextCursor":{"oneOf":[{"type":"string","description":"Pass this as `cursor` to read the next page of a list that is read by cursor. `null` on the last page.","uniqueKey":"meta.nextCursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pass this as `cursor` to read the next page of a list that is read by cursor. `null` on the last page.","uniqueKey":"meta.nextCursor.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.nextCursor","typeLabel":"string | null"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"meta.warnings.items.[INDEX]","typeLabel":"string"},"description":"Things the call did not do, though it succeeded (for example a table that could not be created just now).","uniqueKey":"meta.warnings","typeLabel":"string[]"}},"uniqueKey":"meta","typeLabel":"object"}},"required":["success","data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"data":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","creatorId":"a4d8b6e9-3c2d-4a1f-8b9c-5e2d3f4a1b6c","name":"Chart Widget","description":"Interactive chart widget for data visualization","type":"chart","content":{"chartType":"bar","dataSource":"api"},"isPublic":false,"isDraft":true,"shareId":"shwgt_7f1d34acf2","createdAt":"2025-09-15T10:23:00.000Z","updatedAt":"2025-09-16T08:12:45.000Z","jsPath":"/widgets/chart/main.js","canvasId":"9f0c6b54-3e8f-4a2a-8b7d-1c5c6d9e0a1b","repoId":"user/chart-widget","databaseId":"widget_3fa85f64_5717_4562_b3fc_2c963f66afa6","version":1,"lastCommitSha":"a1b2c3d4e5f6g7h8i9j0","organizationId":"5e2d3f4a-1b6c-4a1f-8b9c-3c2d4e5f6a7b","projectFolder":"marketing/q4-launch","workspaceType":"personal","managedUserId":"b7c8d9e0-1f2a-4b3c-8d4e-5f6a7b8c9d0e"},"meta":{"page":1,"size":20,"total":135,"limit":20,"offset":0,"hasNextPage":true,"hasPreviousPage":false,"nextCursor":"\u003cstring>","warnings":["\u003cstring>"]}}}},"exampleType":"generated"}},"exampleType":"generated"},"5b0694f6-7b46-4f3e-a61c-d15d5fad5d91":{"description":"Invalid request, or the `Idempotency-Key` header is missing.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"28009608-a898-4cfe-9b56-ed5709a112e4":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"a22e915c-0f5f-4d3b-89a8-5b80ad1fce7a":{"description":"The key's role may not use this endpoint, or `canvasId`, `projectId` or `organizationId` names\nsomething you may not use.\n","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c7c60991-60a7-46db-ace2-2a642ffb1e38":{"description":"The managed user named by `managedUserId` or `managedUserExternalId` is not one of yours (`MANAGED_USER_NOT_FOUND`).","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6f0a4903-2dee-4bf8-acf0-491a414a942d":{"description":"The managed user is switched off, so nothing new can be made for it (`MANAGED_USER_INACTIVE`).","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"fa52c99e-bb59-4d5a-8697-88f1b60d40d8":{"description":"Too many widgets created in a minute. See the Retry-After header.","content":{"application/json":{"schema":{"type":"object","required":["success","message","error"],"additionalProperties":true,"properties":{"success":{"type":"boolean","description":"Always `false` on a failure.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","description":"The same text as `error.message`, for a caller that reads one line.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"object","required":["code","message","timestamp"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","example":"RESOURCE_NOT_FOUND","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation.","example":"Composition not found","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","example":"2026-10-15T10:00:00.000Z","isRequired":true,"uniqueKey":"error.timestamp","typeLabel":"string\u003cdate-time>"},"param":{"type":"string","description":"The field that caused the error, when one did.","example":"name","uniqueKey":"error.param","typeLabel":"string"},"docUrl":{"type":"string","description":"Where this error is explained.","uniqueKey":"error.docUrl","typeLabel":"string"},"suggestedAction":{"type":"string","description":"What to do about it.","uniqueKey":"error.suggestedAction","typeLabel":"string"},"retryAfter":{"type":"integer","description":"Seconds to wait before trying again (rate limits). The same number is in the `Retry-After` header.","example":60,"uniqueKey":"error.retryAfter","typeLabel":"integer"},"details":{"type":"object","additionalProperties":true,"description":"More about the error: the fields that failed, a limit that was reached.","uniqueKey":"error.details","typeLabel":"object"},"correlationId":{"type":"string","description":"Quote this when you ask support about the call.","example":"req_123e4567-e89b-12d3-a456-426614174000","uniqueKey":"error.correlationId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"message":"\u003cstring>","error":{"code":"RESOURCE_NOT_FOUND","message":"Composition not found","timestamp":"2026-10-15T10:00:00.000Z","param":"name","docUrl":"\u003cstring>","suggestedAction":"\u003cstring>","retryAfter":60,"details":{},"correlationId":"req_123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"13cc2cf6-452a-4117-917b-32c2d7a68f0c":{"apiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"apiKeyAuth"}}},"servers":{"8cdad7e2-72d7-448d-a767-c0ce9882d766":{"url":"https://api.widgetic.com/v1","description":"Production server","variables":{"env":{"default":"production","description":"Environment"},"apiUrl":{"default":"https://api.widgetic.com","description":"API URL"},"apiVersion":{"default":"/v1","description":"API Version path prefix"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[],"schemeName":"apiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKeyAuth","name":"Authorization"}],"title":"apiKeyAuth"}]},"originalFileLocation":"openapi/widgetic-api-public.json"},"subdomain":"widgetic","siteName":"Widgetic","title":"Create Widget - Widgetic","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T14:06:36.182Z","originalFileLocation":"api-reference/widgets/create-widget.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 a widget for your account: a named record with a type and some starting content, on a canvas of its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until you say otherwise (isDraft: false). If a step after the widget was saved does not go through, the widget is still created, and data.warnings says what did not. Read it before relying on the widget. A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an organization where you may create widgets (organizationId). Naming anything you cannot use is refused with 403, and the answer is the same whether it exists or not. To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget stays in your account and is yours to edit; the tag lets you list one user\u0026#x27;s widgets with getWidgets. The managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set here and does not change afterwards. This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the visitors of a composition leave is kept in the tables of that composition, made when the composition is. The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not two.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Widgetic\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_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/widgetic/U_OgbihBw7xJOURr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Widget - Widgetic\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a widget for your account: a named record with a type and some starting content, on a canvas of its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until you say otherwise (isDraft: false). If a step after the widget was saved does not go through, the widget is still created, and data.warnings says what did not. Read it before relying on the widget. A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an organization where you may create widgets (organizationId). Naming anything you cannot use is refused with 403, and the answer is the same whether it exists or not. To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget stays in your account and is yours to edit; the tag lets you list one user\u0026#x27;s widgets with getWidgets. The managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set here and does not change afterwards. This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the visitors of a composition leave is kept in the tables of that composition, made when the composition is. The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not two.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Widgetic\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://widgetic.com/api-reference/widgets/create-widget\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://widgetic.mintlify.site/_mintlify/api/og/v2?division=Widgets\u0026amp;title=Create+Widget\u0026amp;description=Creates+a+widget+for+your+account%3A+a+named+record+with+a+type+and+some+starting+content%2C+on+a+canvas+of%0Aits+own+%28or+one+of+yours+that+you+name%29.+It+costs+no+cre\u0026amp;theme=7fb55fb4aca22bb80111c88a\u0026amp;signature=165ab3139c59dc805e8dd0c02f847c4a09748b867b044646fc523d93d90f7c25\">\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 Widget - Widgetic\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a widget for your account: a named record with a type and some starting content, on a canvas of its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until you say otherwise (isDraft: false). If a step after the widget was saved does not go through, the widget is still created, and data.warnings says what did not. Read it before relying on the widget. A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an organization where you may create widgets (organizationId). Naming anything you cannot use is refused with 403, and the answer is the same whether it exists or not. To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget stays in your account and is yours to edit; the tag lets you list one user\u0026#x27;s widgets with getWidgets. The managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set here and does not change afterwards. This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the visitors of a composition leave is kept in the tables of that composition, made when the composition is. The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not two.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://widgetic.mintlify.site/_mintlify/api/og/v2?division=Widgets\u0026amp;title=Create+Widget\u0026amp;description=Creates+a+widget+for+your+account%3A+a+named+record+with+a+type+and+some+starting+content%2C+on+a+canvas+of%0Aits+own+%28or+one+of+yours+that+you+name%29.+It+costs+no+cre\u0026amp;theme=7fb55fb4aca22bb80111c88a\u0026amp;signature=165ab3139c59dc805e8dd0c02f847c4a09748b867b044646fc523d93d90f7c25\">\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/widgetic/U_OgbihBw7xJOURr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Widgetic\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#324E30\">\u003clink data-mint-head rel=\"canonical\" href=\"https://widgetic.com/api-reference/widgets/create-widget\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/widgets/create-widget.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://widgetic.com/#organization\",\"name\":\"Widgetic\",\"url\":\"https://widgetic.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/widgetic/Od-pD6ChvIzhY_fR/brand/logo-light.svg?fit=max\u0026auto=format\u0026n=Od-pD6ChvIzhY_fR\u0026q=85\u0026s=c80ce649cc12d9f206a4ea5d3d2d9d31\"}},{\"@type\":\"WebSite\",\"@id\":\"https://widgetic.com#website\",\"name\":\"Widgetic\",\"url\":\"https://widgetic.com\",\"publisher\":{\"@id\":\"https://widgetic.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://widgetic.com/api-reference/widgets/create-widget#webpage\",\"url\":\"https://widgetic.com/api-reference/widgets/create-widget\",\"name\":\"Create Widget\",\"description\":\"Creates a widget for your account: a named record with a type and some starting content, on a canvas of its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until you say otherwise (isDraft: false). If a step after the widget was saved does not go through, the widget is still created, and data.warnings says what did not. Read it before relying on the widget. A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an organization where you may create widgets (organizationId). Naming anything you cannot use is refused with 403, and the answer is the same whether it exists or not. To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget stays in your account and is yours to edit; the tag lets you list one user's widgets with getWidgets. The managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set here and does not change afterwards. This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the visitors of a composition leave is kept in the tables of that composition, made when the composition is. The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not two.\",\"dateModified\":\"2026-11-08T14:06:36.182Z\",\"isPartOf\":{\"@id\":\"https://widgetic.com#website\"},\"breadcrumb\":{\"@id\":\"https://widgetic.com/api-reference/widgets/create-widget#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://widgetic.com/api-reference/widgets/create-widget#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Widgets\",\"item\":\"https://widgetic.com/api-reference/widgets/list-widgets\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Widget\",\"item\":\"https://widgetic.com/api-reference/widgets/create-widget\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://widgetic.com/api-reference/widgets/create-widget#apireference\",\"headline\":\"Create Widget\",\"name\":\"Create Widget\",\"description\":\"Creates a widget for your account: a named record with a type and some starting content, on a canvas of its own (or one of yours that you name). It costs no credits and has no code yet; the code is generated for it afterwards. The new widget is yours, and you can list it with getWidgets. A widget is a draft until you say otherwise (isDraft: false). If a step after the widget was saved does not go through, the widget is still created, and data.warnings says what did not. Read it before relying on the widget. A widget can be placed on one of your canvases (canvasId), in a project you can edit (projectId) or in an organization where you may create widgets (organizationId). Naming anything you cannot use is refused with 403, and the answer is the same whether it exists or not. To make the widget for one of your managed users, send managedUserId or managedUserExternalId. The widget stays in your account and is yours to edit; the tag lets you list one user's widgets with getWidgets. The managed user must be yours and active: one that is not yours, or does not exist, is answered with 404 and MANAGED_USER_NOT_FOUND, and one that is switched off with 409 and MANAGED_USER_INACTIVE. The tag is set here and does not change afterwards. This call has a limit of its own: 120 per minute for each account (ask Widgetic if you need more). Past that the call is answered with 429 and a Retry-After. A widget has no database of its own: what the visitors of a composition leave is kept in the tables of that composition, made when the composition is. The Idempotency-Key header is required; send the same key when you retry, so one widget is created, not two.\",\"url\":\"https://widgetic.com/api-reference/widgets/create-widget\",\"mainEntityOfPage\":{\"@id\":\"https://widgetic.com/api-reference/widgets/create-widget#webpage\"},\"dateModified\":\"2026-11-08T14:06:36.182Z\",\"publisher\":{\"@id\":\"https://widgetic.com/#organization\"},\"isPartOf\":{\"@id\":\"https://widgetic.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Widgetic\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Widgetic\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/widgets/create-widget.md","siteName":"Widgetic","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"API Reference Introduction","href":"/api-reference/introduction"},{"title":"Pagination","href":"/api-reference/pagination"},{"title":"Usage Limits","href":"/api-reference/usage-limits"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Public Embed","pages":[{"title":"Append a visitor entry through the gateway","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /embed/compositions/{compositionId}/entries/{table}","href":"/api-reference/public-embed/append-a-visitor-entry-through-the-gateway"},{"title":"Read the published Workflow of an embed","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /embed/workflows/{workflowId}","href":"/api-reference/public-embed/read-the-published-workflow-of-an-embed"},{"title":"Read one published version of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /embed/workflows/{workflowId}/versions/{versionId}","href":"/api-reference/public-embed/read-one-published-version-of-a-workflow"},{"title":"Report what visitors did in a Workflow, as counts","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /embed/workflows/{workflowId}/events","href":"/api-reference/public-embed/report-what-visitors-did-in-a-workflow-as-counts"},{"title":"Show a published Workflow in a page of its own","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /embed/workflows/{workflowId}/frame","href":"/api-reference/public-embed/show-a-published-workflow-in-a-page-of-its-own"},{"title":"Resolve a composition UUID to a published widget URL","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /embed/compositions/{compositionId}","href":"/api-reference/public-embed/resolve-a-composition-uuid-to-a-published-widget-url"},{"title":"Embed a published composition with its saved values","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /embed/compositions/{compositionId}/frame","href":"/api-reference/public-embed/embed-a-published-composition-with-its-saved-values"},{"title":"Batch-check whether compositions are currently served for embed","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /embed/compositions/status","href":"/api-reference/public-embed/batch-check-whether-compositions-are-currently-served-for-embed"},{"title":"Call a gateway operation of an adapter a published widget uses","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /embed/compositions/{compositionId}/adapters/{adapterId}/{operation}","href":"/api-reference/public-embed/call-a-gateway-operation-of-an-adapter-a-published-widget-uses"},{"title":"Send the file a visitor chose through the upload adapter of a published widget","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /embed/compositions/{compositionId}/adapters/upload/files/{ticket}","href":"/api-reference/public-embed/send-the-file-a-visitor-chose-through-the-upload-adapter-of-a-published-widget"}]},{"group":"Workflows","pages":[{"title":"List the compositions a workflow can show, and what each can do","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/composition-options","href":"/api-reference/workflows/list-the-compositions-a-workflow-can-show-and-what-each-can-do"},{"title":"List the starting points for a new Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/presets","href":"/api-reference/workflows/list-the-starting-points-for-a-new-workflow"},{"title":"Start a Workflow from a starting point","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/from-preset","href":"/api-reference/workflows/start-a-workflow-from-a-starting-point"},{"title":"List the Workflows of a Workspace","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows","href":"/api-reference/workflows/list-the-workflows-of-a-workspace"},{"title":"Create a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows","href":"/api-reference/workflows/create-a-workflow"},{"title":"Get a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/{workflowId}","href":"/api-reference/workflows/get-a-workflow"},{"title":"Save the Draft of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /workspaces/{workspaceId}/workflows/{workflowId}","href":"/api-reference/workflows/save-the-draft-of-a-workflow"},{"title":"Delete a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /workspaces/{workspaceId}/workflows/{workflowId}","href":"/api-reference/workflows/delete-a-workflow"},{"title":"Duplicate a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/duplicate","href":"/api-reference/workflows/duplicate-a-workflow"},{"title":"Publish the Draft of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/publish","href":"/api-reference/workflows/publish-the-draft-of-a-workflow"},{"title":"Discard the Unpublished Changes of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/discard","href":"/api-reference/workflows/discard-the-unpublished-changes-of-a-workflow"},{"title":"List the Published Versions of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/{workflowId}/versions","href":"/api-reference/workflows/list-the-published-versions-of-a-workflow"},{"title":"Get a Published Version of a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/{workflowId}/versions/{versionId}","href":"/api-reference/workflows/get-a-published-version-of-a-workflow"},{"title":"Restore a Version of a Workflow into the Draft","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/versions/{versionId}/restore","href":"/api-reference/workflows/restore-a-version-of-a-workflow-into-the-draft"},{"title":"Pause a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/pause","href":"/api-reference/workflows/pause-a-workflow"},{"title":"Resume a Paused Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/resume","href":"/api-reference/workflows/resume-a-paused-workflow"},{"title":"Archive a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/archive","href":"/api-reference/workflows/archive-a-workflow"},{"title":"Unarchive a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /workspaces/{workspaceId}/workflows/{workflowId}/unarchive","href":"/api-reference/workflows/unarchive-a-workflow"},{"title":"Get what Visitors Did in a Workflow","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /workspaces/{workspaceId}/workflows/{workflowId}/stats","href":"/api-reference/workflows/get-what-visitors-did-in-a-workflow"}]},{"group":"Partners","pages":[{"title":"List the workflows a partner offers as places to start","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/workflow-presets","href":"/api-reference/partners/list-the-workflows-a-partner-offers-as-places-to-start"},{"title":"Offer a workflow as a place to start, or replace what a key offers","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/workflow-presets/{key}","href":"/api-reference/partners/offer-a-workflow-as-a-place-to-start-or-replace-what-a-key-offers"},{"title":"Stop offering a workflow as a place to start","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /partners/{partnerId}/workflow-presets/{key}","href":"/api-reference/partners/stop-offering-a-workflow-as-a-place-to-start"},{"title":"Find the partner you administer","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/mine","href":"/api-reference/partners/find-the-partner-you-administer"},{"title":"Get partner credit balance","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/credits/balance","href":"/api-reference/partners/get-partner-credit-balance"},{"title":"Get partner credit transaction history","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/credits/transactions","href":"/api-reference/partners/get-partner-credit-transaction-history"},{"title":"Buy extra credits for a partner","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/credits/extra-invoice","href":"/api-reference/partners/buy-extra-credits-for-a-partner"},{"title":"Get comprehensive partner billing overview","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/billing-overview","href":"/api-reference/partners/get-comprehensive-partner-billing-overview"},{"title":"Get a partner's contract","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/contract","href":"/api-reference/partners/get-a-partners-contract"},{"title":"Get where a partner's uploaded files are stored","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/storage","href":"/api-reference/partners/get-where-a-partners-uploaded-files-are-stored"},{"title":"Set where a partner's uploaded files are stored","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/storage","href":"/api-reference/partners/set-where-a-partners-uploaded-files-are-stored"},{"title":"Stop storing a partner's uploaded files in its own bucket","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /partners/{partnerId}/storage","href":"/api-reference/partners/stop-storing-a-partners-uploaded-files-in-its-own-bucket"},{"title":"Check that a partner's storage destination still works","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/storage/verify","href":"/api-reference/partners/check-that-a-partners-storage-destination-still-works"},{"title":"List the widgets a partner offers as presets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/presets","href":"/api-reference/partners/list-the-widgets-a-partner-offers-as-presets"},{"title":"Make a widget a preset, or replace a preset","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/presets/{key}","href":"/api-reference/partners/make-a-widget-a-preset-or-replace-a-preset"},{"title":"Take a widget off the partner's presets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /partners/{partnerId}/presets/{key}","href":"/api-reference/partners/take-a-widget-off-the-partners-presets"},{"title":"Read partner-wide design defaults","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/design-defaults","href":"/api-reference/partners/read-partner-wide-design-defaults"},{"title":"Set or clear partner-wide design defaults","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/design-defaults","href":"/api-reference/partners/set-or-clear-partner-wide-design-defaults"},{"title":"What a partner's customers store","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/storage/usage","href":"/api-reference/partners/what-a-partners-customers-store"},{"title":"What was done with a partner's published widgets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/analytics/summary","href":"/api-reference/partners/what-was-done-with-a-partners-published-widgets"},{"title":"What each managed user's widgets did","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/analytics/managed-users","href":"/api-reference/partners/what-each-managed-users-widgets-did"},{"title":"Which widgets were viewed the most","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/analytics/top-widgets","href":"/api-reference/partners/which-widgets-were-viewed-the-most"},{"title":"What was done with a partner's widgets, day by day","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/analytics/timeline","href":"/api-reference/partners/what-was-done-with-a-partners-widgets-day-by-day"},{"title":"What your partner account was told","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/notifications","href":"/api-reference/partners/what-your-partner-account-was-told"},{"title":"How your notifications reached you","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/notifications/deliveries","href":"/api-reference/partners/how-your-notifications-reached-you"},{"title":"Where your notifications go","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/notifications/settings","href":"/api-reference/partners/where-your-notifications-go"},{"title":"Choose where your notifications go","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/notifications/settings","href":"/api-reference/partners/choose-where-your-notifications-go"},{"title":"Make a new secret for your webhook","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/notifications/webhook-secret","href":"/api-reference/partners/make-a-new-secret-for-your-webhook"},{"title":"Send a webhook delivery again","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/notifications/deliveries/{deliveryId}/replay","href":"/api-reference/partners/send-a-webhook-delivery-again"},{"title":"Send a test event to your webhook","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/notifications/test-event","href":"/api-reference/partners/send-a-test-event-to-your-webhook"},{"title":"See how the context of your embeds is signed","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/entry-context-signing","href":"/api-reference/partners/see-how-the-context-of-your-embeds-is-signed"},{"title":"Require a signed context, or stop requiring it","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/entry-context-signing","href":"/api-reference/partners/require-a-signed-context-or-stop-requiring-it"},{"title":"Make a secret to sign the context of your embeds","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/entry-context-signing/secret","href":"/api-reference/partners/make-a-secret-to-sign-the-context-of-your-embeds"},{"title":"See the Neon database a partner keeps the data of its compositions in","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/data-database","href":"/api-reference/partners/see-the-neon-database-a-partner-keeps-the-data-of-its-compositions-in"},{"title":"Keep the data of a partner's compositions in a Neon database of its own","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/data-database","href":"/api-reference/partners/keep-the-data-of-a-partners-compositions-in-a-neon-database-of-its-own"},{"title":"Stop keeping the data of a partner's compositions in its own database","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /partners/{partnerId}/data-database","href":"/api-reference/partners/stop-keeping-the-data-of-a-partners-compositions-in-its-own-database"},{"title":"Check that a partner's own database still works","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/data-database/verify","href":"/api-reference/partners/check-that-a-partners-own-database-still-works"},{"title":"See which adapter keys a partner has connected","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /partners/{partnerId}/adapter-connections","href":"/api-reference/partners/see-which-adapter-keys-a-partner-has-connected"},{"title":"Connect an adapter key to a partner","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /partners/{partnerId}/adapter-connections/{adapterId}/{credentialKey}","href":"/api-reference/partners/connect-an-adapter-key-to-a-partner"},{"title":"Remove an adapter key from a partner","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /partners/{partnerId}/adapter-connections/{adapterId}/{credentialKey}","href":"/api-reference/partners/remove-an-adapter-key-from-a-partner"},{"title":"Confirm a partner's adapter address with the code that was emailed to it","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /partners/{partnerId}/adapter-connections/{adapterId}/{credentialKey}/confirm","href":"/api-reference/partners/confirm-a-partners-adapter-address-with-the-code-that-was-emailed-to-it"}]},{"group":"Widgets","pages":[{"title":"List Widgets","description":"Lists the widgets your account owns, newest first. A widget is the reusable piece a composition is made\nfrom; this is your own library, not a catalogue of Widgetic's widgets.\n\nPass `page` (counting from 1) and `size` (1 to 100, 20 when left out) to read the list one page at a time.\n`meta` then carries `total`, `hasNextPage` and `hasPreviousPage`, so a client can walk the list to its end.\nA page past the end is an empty list. Without `page` and `size` the call returns the whole list in one\nresponse, which only suits an account with a few widgets.\n\nPass `canvasId` to list only the widgets on one of your canvases. That list is always returned whole,\nwhatever `page` and `size` say.\n\nPass `managedUserId` (Widgetic's id for one of your managed users) or `managedUserExternalId` (your own\nidentifier for the user) to list only the widgets made for that managed user. The widgets of your other\nmanaged users, and your own, are left out. It combines with `page`, `size` and `canvasId`. A managed user\nthat is not yours, or does not exist, is answered with 404 and `MANAGED_USER_NOT_FOUND`.\n","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /widgets","href":"/api-reference/widgets/list-widgets"},{"title":"Create Widget","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /widgets","href":"/api-reference/widgets/create-widget"},{"title":"Create a composition for a widget in one call","description":"After a managed user publishes a widget from the creator, call this with the widget id, the customer's\nmanaged user (when the widget is not already filed under one), and optional content, design, embed settings\nand locale. Every input is validated before a single insert; a failure never leaves a half-made composition.\n\nWhen the widget is already tagged with a managed user, you may omit `managedUserId`. When you send it, it\nmust match that tag.\n\nA widget that keeps what visitors send (a form, a vote, a rating) declares its tables in its own source\n(`src/lib/meta/database.json`); they are made for the composition here, in a schema of its own, as the widget\nwas when it was last published. A widget that keeps nothing leaves the composition without tables. If the\ntables cannot be made just now, or the widget's file cannot be used, the composition is still created (`201`)\nand `meta.warnings` says why; the tables are made the next time the widget is generated.\n\nThe widget must be published. The `Idempotency-Key` header is required.\n","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /widgets/{id}/composition","href":"/api-reference/widgets/create-a-composition-for-a-widget-in-one-call"},{"title":"Get Widgets Batch","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /widgets/batch","href":"/api-reference/widgets/get-widgets-batch"}]},{"group":"Users","pages":[{"title":"List the websites allowed to show your widgets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /users/{id}/workspace/domains","href":"/api-reference/users/list-the-websites-allowed-to-show-your-widgets"},{"title":"Allow a website to show your widgets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /users/{id}/workspace/domains","href":"/api-reference/users/allow-a-website-to-show-your-widgets"},{"title":"Change a website on your list","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /users/{id}/workspace/domains/{domainId}","href":"/api-reference/users/change-a-website-on-your-list"},{"title":"Stop allowing a website to show your widgets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /users/{id}/workspace/domains/{domainId}","href":"/api-reference/users/stop-allowing-a-website-to-show-your-widgets"},{"title":"List the API keys of an account","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /users/{id}/keys","href":"/api-reference/users/list-the-api-keys-of-an-account"},{"title":"Create an API key","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /users/{id}/keys","href":"/api-reference/users/create-an-api-key"},{"title":"Rename an API key, or switch it off or on","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /users/{id}/keys/{keyId}","href":"/api-reference/users/rename-an-api-key-or-switch-it-off-or-on"},{"title":"Delete an API key","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /users/{id}/keys/{keyId}","href":"/api-reference/users/delete-an-api-key"},{"title":"Read what an API key was used for","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /users/{id}/api-keys/{keyId}/logs","href":"/api-reference/users/read-what-an-api-key-was-used-for"},{"title":"See which adapter keys an account has connected","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /users/{userId}/adapter-connections","href":"/api-reference/users/see-which-adapter-keys-an-account-has-connected"},{"title":"Connect an adapter key to an account","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /users/{userId}/adapter-connections/{adapterId}/{credentialKey}","href":"/api-reference/users/connect-an-adapter-key-to-an-account"},{"title":"Remove an adapter key from an account","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /users/{userId}/adapter-connections/{adapterId}/{credentialKey}","href":"/api-reference/users/remove-an-adapter-key-from-an-account"},{"title":"Confirm an adapter address with the code that was emailed to it","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /users/{userId}/adapter-connections/{adapterId}/{credentialKey}/confirm","href":"/api-reference/users/confirm-an-adapter-address-with-the-code-that-was-emailed-to-it"}]},{"group":"Uploads","pages":[{"title":"List the account's uploads","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /uploads","href":"/api-reference/uploads/list-the-accounts-uploads"},{"title":"Upload a file","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /uploads","href":"/api-reference/uploads/upload-a-file"},{"title":"Upload size limits and accepted file types","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /uploads/limits","href":"/api-reference/uploads/upload-size-limits-and-accepted-file-types"},{"title":"Get an upload by id","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /uploads/{id}","href":"/api-reference/uploads/get-an-upload-by-id"},{"title":"Delete an upload","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /uploads/{id}","href":"/api-reference/uploads/delete-an-upload"}]},{"group":"Tokens","pages":[{"title":"Validate current authentication token","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /tokens/validate","href":"/api-reference/tokens/validate-current-authentication-token"}]},{"group":"Operations","pages":[{"title":"Get operation status","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /operations/{id}","href":"/api-reference/operations/get-operation-status"}]},{"group":"Managed Users","pages":[{"title":"Get Managed Users","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users","href":"/api-reference/managed-users/get-managed-users"},{"title":"Create Managed User","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /managed-users","href":"/api-reference/managed-users/create-managed-user"},{"title":"Get Managed Users By Manager","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /users/{managerId}/managed-users","href":"/api-reference/managed-users/get-managed-users-by-manager"},{"title":"Get Managed User By ID","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}","href":"/api-reference/managed-users/get-managed-user-by-id"},{"title":"Update Managed User","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /managed-users/{id}","href":"/api-reference/managed-users/update-managed-user"},{"title":"Delete Managed User","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /managed-users/{id}","href":"/api-reference/managed-users/delete-managed-user"},{"title":"Create an editor session for a managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /managed-users/{id}/editor-sessions","href":"/api-reference/managed-users/create-an-editor-session-for-a-managed-user"},{"title":"End every editor session of a managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /managed-users/{id}/editor-sessions","href":"/api-reference/managed-users/end-every-editor-session-of-a-managed-user"},{"title":"End one editor session of a managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /managed-users/{id}/editor-sessions/{sessionId}","href":"/api-reference/managed-users/end-one-editor-session-of-a-managed-user"},{"title":"What a managed user's editor sessions spent","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}/usage","href":"/api-reference/managed-users/what-a-managed-users-editor-sessions-spent"},{"title":"Give a managed user a copy of one of your presets","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /managed-users/{id}/presets/{key}/copy","href":"/api-reference/managed-users/give-a-managed-user-a-copy-of-one-of-your-presets"},{"title":"Create a composition from one of your presets in one call","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /managed-users/{id}/presets/{key}/composition","href":"/api-reference/managed-users/create-a-composition-from-one-of-your-presets-in-one-call"},{"title":"Read monthly credit cap and usage for one managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}/limits","href":"/api-reference/managed-users/read-monthly-credit-cap-and-usage-for-one-managed-user"},{"title":"Set or clear the monthly credit cap for one managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /managed-users/{id}/limits","href":"/api-reference/managed-users/set-or-clear-the-monthly-credit-cap-for-one-managed-user"},{"title":"Storage used by one managed user's uploads","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}/storage-usage","href":"/api-reference/managed-users/storage-used-by-one-managed-users-uploads"},{"title":"List entries across a managed user's compositions","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}/entries","href":"/api-reference/managed-users/list-entries-across-a-managed-users-compositions"},{"title":"Read design defaults for one managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /managed-users/{id}/design-defaults","href":"/api-reference/managed-users/read-design-defaults-for-one-managed-user"},{"title":"Set or clear design defaults for one managed user","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /managed-users/{id}/design-defaults","href":"/api-reference/managed-users/set-or-clear-design-defaults-for-one-managed-user"}]},{"group":"Invoices","pages":[{"title":"List a partner's invoices","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /invoices/partner/{partnerId}","href":"/api-reference/invoices/list-a-partners-invoices"}]},{"group":"Entitlements","pages":[{"title":"Get partner entitlements","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /entitlements/partners/{partnerId}","href":"/api-reference/entitlements/get-partner-entitlements"},{"title":"Get managed user entitlements","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /entitlements/managed-users/{managedUserId}","href":"/api-reference/entitlements/get-managed-user-entitlements"}]},{"group":"Credits","pages":[{"title":"Get an account's credit balance","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /credits/user/{userId}/balance","href":"/api-reference/credits/get-an-accounts-credit-balance"},{"title":"List an account's credit ledger","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /credits/user/{userId}/transactions","href":"/api-reference/credits/list-an-accounts-credit-ledger"}]},{"group":"Compositions","pages":[{"title":"Get All Compositions","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions","href":"/api-reference/compositions/get-all-compositions"},{"title":"Create Composition","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions","href":"/api-reference/compositions/create-composition"},{"title":"Duplicate Composition","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/duplicate","href":"/api-reference/compositions/duplicate-composition"},{"title":"Get Composition Versions","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/versions","href":"/api-reference/compositions/get-composition-versions"},{"title":"Update Composition Status","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /compositions/{id}/status","href":"/api-reference/compositions/update-composition-status"},{"title":"Get Composition","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}","href":"/api-reference/compositions/get-composition"},{"title":"Update Composition","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /compositions/{id}","href":"/api-reference/compositions/update-composition"},{"title":"Delete Composition","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}","href":"/api-reference/compositions/delete-composition"},{"title":"Get Composition Design","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/design","href":"/api-reference/compositions/get-composition-design"},{"title":"Get Current Content","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/content","href":"/api-reference/compositions/get-current-content"},{"title":"Set Dynamic Content","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /compositions/{id}/content","href":"/api-reference/compositions/set-dynamic-content"},{"title":"Get Composition Embed Settings","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/embed-settings","href":"/api-reference/compositions/get-composition-embed-settings"},{"title":"Get Composition Preview","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/preview","href":"/api-reference/compositions/get-composition-preview"},{"title":"Get All Records From Composition Database Table","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/database/{table}","href":"/api-reference/compositions/get-all-records-from-composition-database-table"},{"title":"Create Record In Composition Database","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/database/{table}","href":"/api-reference/compositions/create-record-in-composition-database"},{"title":"Get Record From Composition Database","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/database/{table}/{recordId}","href":"/api-reference/compositions/get-record-from-composition-database"},{"title":"Update Record In Composition Database","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /compositions/{id}/database/{table}/{recordId}","href":"/api-reference/compositions/update-record-in-composition-database"},{"title":"Delete Record From Composition Database","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}/database/{table}/{recordId}","href":"/api-reference/compositions/delete-record-from-composition-database"},{"title":"Describe What a Composition Keeps","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/entries","href":"/api-reference/compositions/describe-what-a-composition-keeps"},{"title":"Read the Entries of a Composition's Table","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/entries/{table}","href":"/api-reference/compositions/read-the-entries-of-a-compositions-table"},{"title":"Add a content list item","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/content/{list}/items","href":"/api-reference/compositions/add-a-content-list-item"},{"title":"Delete a content list item","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}/content/{list}/items/{itemId}","href":"/api-reference/compositions/delete-a-content-list-item"},{"title":"Update a content list item","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json patch /compositions/{id}/content/{list}/items/{itemId}","href":"/api-reference/compositions/update-a-content-list-item"},{"title":"Read the composition data source binding","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/data-source","href":"/api-reference/compositions/read-the-composition-data-source-binding"},{"title":"Bind a public JSON data source for embed refresh","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /compositions/{id}/data-source","href":"/api-reference/compositions/bind-a-public-json-data-source-for-embed-refresh"},{"title":"Remove the composition data source binding","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}/data-source","href":"/api-reference/compositions/remove-the-composition-data-source-binding"},{"title":"Validate Content","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/content/validate","href":"/api-reference/compositions/validate-content"},{"title":"Get Content Schema","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/schema/content","href":"/api-reference/compositions/get-content-schema"},{"title":"Get Design Schema","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/schema/design","href":"/api-reference/compositions/get-design-schema"},{"title":"Get Embed Schema","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/schema/embed","href":"/api-reference/compositions/get-embed-schema"},{"title":"Check Composition Access","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/access","href":"/api-reference/compositions/check-composition-access"},{"title":"Get Compositions Batch","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/batch","href":"/api-reference/compositions/get-compositions-batch"},{"title":"List composition entry items with paging and filters","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/entries/{table}/items","href":"/api-reference/compositions/list-composition-entry-items-with-paging-and-filters"},{"title":"Delete composition entry items by id or host context","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}/entries/{table}/items","href":"/api-reference/compositions/delete-composition-entry-items-by-id-or-host-context"},{"title":"Export composition entry items","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/entries/{table}/export","href":"/api-reference/compositions/export-composition-entry-items"},{"title":"See the documents a widget's AI answers from","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /compositions/{id}/adapters/ai-answers/knowledge","href":"/api-reference/compositions/see-the-documents-a-widgets-ai-answers-from"},{"title":"Add a document for a widget's AI to answer from","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/adapters/ai-answers/knowledge/documents","href":"/api-reference/compositions/add-a-document-for-a-widgets-ai-to-answer-from"},{"title":"Add a text file or a picture of a document (a PDF once PDFs are read) for a widget's AI to answer from","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /compositions/{id}/adapters/ai-answers/knowledge/documents/file","href":"/api-reference/compositions/add-a-text-file-or-a-picture-of-a-document-a-pdf-once-pdfs-are-read-for-a-widgets-ai-to-answer-from"},{"title":"Remove a document from a widget's knowledge base","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /compositions/{id}/adapters/ai-answers/knowledge/documents/{documentId}","href":"/api-reference/compositions/remove-a-document-from-a-widgets-knowledge-base"}]},{"group":"Canvases","pages":[{"title":"Get All Canvases","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /canvases","href":"/api-reference/canvases/get-all-canvases"},{"title":"Create Canvas","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /canvases","href":"/api-reference/canvases/create-canvas"},{"title":"Get Canvas","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /canvases/{id}","href":"/api-reference/canvases/get-canvas"},{"title":"Update Canvas","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /canvases/{id}","href":"/api-reference/canvases/update-canvas"},{"title":"Delete Canvas","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /canvases/{id}","href":"/api-reference/canvases/delete-canvas"}]},{"group":"Brand Kit","pages":[{"title":"The Brand Kit of the current workspace","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json get /brand-kit","href":"/api-reference/brand-kit/the-brand-kit-of-the-current-workspace"},{"title":"Save Brand Kit tokens","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json put /brand-kit","href":"/api-reference/brand-kit/save-brand-kit-tokens"},{"title":"Reset the Brand Kit to the default","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /brand-kit","href":"/api-reference/brand-kit/reset-the-brand-kit-to-the-default"},{"title":"Change part of the Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json patch /brand-kit","href":"/api-reference/brand-kit/change-part-of-the-brand-kit"},{"title":"Upload a font file to the Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /brand-kit/fonts","href":"/api-reference/brand-kit/upload-a-font-file-to-the-brand-kit"},{"title":"Add a named SVG icon to the Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json post /brand-kit/icons","href":"/api-reference/brand-kit/add-a-named-svg-icon-to-the-brand-kit"},{"title":"Remove a font or icon from the Brand Kit","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json delete /brand-kit/assets/{assetId}","href":"/api-reference/brand-kit/remove-a-font-or-icon-from-the-brand-kit"},{"title":"Rename an icon or relabel a font variant","deprecated":null,"version":null,"openapi":"/openapi/widgetic-api-public.json patch /brand-kit/assets/{assetId}","href":"/api-reference/brand-kit/rename-an-icon-or-relabel-a-font-variant"}]}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/resources/examples"}]}]},"basePath":"","title":"Create Widget - Widgetic","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}