The Joyfill API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
The entire API uses JSON encoded as UTF-8.The body of POST and PUT requests must be either a JSON object or a JSON array (depending on the particular endpoint) and their Content-Type header should be set to application/json; charset=UTF-8.The body of responses is always a JSON object, and their content type is always application/json; charset=UTF-8.
Identifiers represent readable IDs for resources inside of Joyfill. Identifiers are the primary way you will query, update, and remove resources via the Joyfill API.Learn more: Identifiers In Joyfill
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Joyfill Documentation","colors":{"primary":"#0066FF","light":"#3385FF","dark":"#0052CC"},"logo":{"light":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20","dark":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/dark.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=1e5d261c597f0b6b0e76678391248b24"},"favicon":{"light":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20","dark":"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/dark.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=1e5d261c597f0b6b0e76678391248b24"},"navbar":{"primary":{"type":"button","label":"Get Started","href":"https://joyfill.io/contact-us"}},"footer":{"socials":{"github":"https://github.com/joyfill","linkedin":"https://linkedin.com/company/joyfill"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"joyfill","hasAudioNarration":false,"actualSubdomain":"joyfill","customDomains":["docs.joyfill.io"],"gitSource":{"type":"github","owner":"joyfill","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad0f2cfa123d1d22f620010","collectionId":"f633073e-254f-44d1-baf7-0eafb47683a4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad0f2cfa123d1d22f620010"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad11c8f2129f69a338df6a7","clientVersion":"0.0.3918","searchFilterCounts":[{"language":"default","tag":"REST API","count":38},{"language":"default","tag":"Guides","count":33},{"language":"default","tag":"Web SDK","count":23},{"language":"default","tag":"iOS SDK","count":18},{"language":"default","tag":"Getting Started","count":15},{"language":"default","tag":"Kotlin SDK","count":14},{"language":"default","tag":"Documents","count":12},{"language":"default","tag":"Users","count":8},{"language":"default","tag":"Resources","count":8},{"language":"default","tag":"Templates","count":7}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"editor-private-page-search","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":"teamspace","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":"editor-nav-generations","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":"vite-origin","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":"byok-sep-25","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":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/introduction","slug":"/api/introduction","pageMetadata":{"title":"Overview","description":"Getting started with the Joyfill API","href":"/api/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Getting started with the Joyfill API\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The Joyfill API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.`}),`\n`,_jsx(Heading,{level:`1`,id:`hosts`,children:`Hosts`}),`\n`,_jsxs(_components.p,{children:[`The primary host is `,_jsx(_components.code,{children:`api-joy.joyfill.io`}),` for both read and write operations. All API access must use HTTPS and will require `,_jsx(_components.a,{href:`/api/authentication`,children:`Authentication`}),`.`]}),`\n`,_jsx(Heading,{level:`1`,id:`format`,children:`Format`}),`\n`,_jsx(_components.p,{children:`The entire API uses JSON encoded as UTF-8.`}),`\n`,_jsx(_components.p,{children:`The body of POST and PUT requests must be either a JSON object or a JSON array (depending on the particular endpoint) and their Content-Type header should be set to application/json; charset=UTF-8.`}),`\n`,_jsx(_components.p,{children:`The body of responses is always a JSON object, and their content type is always application/json; charset=UTF-8.`}),`\n`,_jsx(Heading,{level:`1`,id:`authentication`,children:`Authentication`}),`\n`,_jsx(_components.p,{children:`Joyfill uses API keys and User Access Tokens to authenticate API requests.`}),`\n`,_jsxs(_components.p,{children:[`Learn more: `,_jsx(_components.a,{href:`/api/authentication`,children:`Authenication`})]}),`\n`,_jsx(Heading,{level:`1`,id:`identifiers`,children:`Identifiers`}),`\n`,_jsx(_components.p,{children:`Identifiers represent readable IDs for resources inside of Joyfill. Identifiers are the primary way you will query, update, and remove resources via the Joyfill API.`}),`\n`,_jsxs(_components.p,{children:[`Learn more: `,_jsx(_components.a,{href:`/api/identifiers`,children:`Identifiers In Joyfill`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Overview","description":"Getting started with the Joyfill API","href":"/api/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Hosts","slug":"hosts","depth":1,"children":[]},{"title":"Format","slug":"format","depth":1,"children":[]},{"title":"Authentication","slug":"authentication","depth":1,"children":[]},{"title":"Identifiers","slug":"identifiers","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"joyfill","siteName":"Joyfill Documentation","title":"Overview - Joyfill Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-27T17:02:44.703Z","originalFileLocation":"api/introduction.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=\"Getting started with the Joyfill API\">\u003cmeta data-mint-head name=\"application-name\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_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/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - Joyfill Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Getting started with the Joyfill API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.joyfill.io/api/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://joyfill.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Overview\u0026amp;description=Getting+started+with+the+Joyfill+API\u0026amp;theme=0158e7b6915677d209be2752\u0026amp;signature=2d1dd8e1e8e660dc7f64600a75c02442fae3410e46e69e633df55ac9405a2066\">\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=\"Overview - Joyfill Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Getting started with the Joyfill API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://joyfill.mintlify.app/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Overview\u0026amp;description=Getting+started+with+the+Joyfill+API\u0026amp;theme=0158e7b6915677d209be2752\u0026amp;signature=2d1dd8e1e8e660dc7f64600a75c02442fae3410e46e69e633df55ac9405a2066\">\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/joyfill/bJpGt59VIYWLJJ_T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Joyfill Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.joyfill.io/api/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.joyfill.io/#organization\",\"name\":\"Joyfill Documentation\",\"url\":\"https://docs.joyfill.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/joyfill/SaNj-3btHZJHzB1F/logo/light.svg?fit=max\u0026auto=format\u0026n=SaNj-3btHZJHzB1F\u0026q=85\u0026s=9318794848011381f5c48e074eda6d20\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.joyfill.io#website\",\"name\":\"Joyfill Documentation\",\"url\":\"https://docs.joyfill.io\",\"publisher\":{\"@id\":\"https://docs.joyfill.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.joyfill.io/api/introduction#webpage\",\"url\":\"https://docs.joyfill.io/api/introduction\",\"name\":\"Overview\",\"description\":\"Getting started with the Joyfill API\",\"dateModified\":\"2026-01-27T17:02:44.703Z\",\"isPartOf\":{\"@id\":\"https://docs.joyfill.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.joyfill.io/api/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.joyfill.io/api/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Joyfill Documentation\",\"item\":\"https://docs.joyfill.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://docs.joyfill.io/api/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.joyfill.io/api/introduction#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"description\":\"Getting started with the Joyfill API\",\"url\":\"https://docs.joyfill.io/api/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.joyfill.io/api/introduction#webpage\"},\"dateModified\":\"2026-01-27T17:02:44.703Z\",\"publisher\":{\"@id\":\"https://docs.joyfill.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.joyfill.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Joyfill Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Joyfill Documentation","nav":{"global":{"anchors":[]},"dropdowns":[{"dropdown":"Overview","icon":"list","groups":[{"group":"Joyfill","pages":[{"title":"Welcome to Joyfill","href":"/joyfill"},{"title":"JoyDoc","href":"/joyfill/joydoc-usage"},{"title":"Reference","href":"/joyfill/schema-json"},{"title":null,"href":"/joyfill/metadata"},{"title":"Field Identifiers","href":"/joyfill/field-identifiers"},{"title":"Self-hosting","href":"/joyfill/self-hosted"},{"title":"Security","icon":{"name":"shield-check","style":"regular","library":"fontawesome"},"href":"/security"}]}]},{"dropdown":"iOS SDK","icon":"apple","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","href":"/ios/getting-started"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","href":"/ios/guides/modes"},{"title":"Image Upload Handling","icon":"image","href":"/ios/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","href":"/ios/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","href":"/ios/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","href":"/ios/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","href":"/ios/guides/event-handling"},{"title":"Form Configuration","icon":"gear","href":"/ios/guides/form-configuration"},{"title":"Form footer","icon":"mobile","href":"/ios/guides/form-footer"},{"title":"Navigation","icon":"compass","href":"/ios/guides/external-navigation"},{"title":"Decorators","icon":"sparkles","href":"/ios/guides/decorators"}]},{"group":"API Reference","pages":[{"title":"API Overview","icon":"code","href":"/ios/api-reference/overview"},{"title":"Joyfill Module","icon":"mobile","url":"https://joyfill.github.io/api-references/ios/Joyfill/documentation/joyfill","href":"/ios/api-reference/joyfill-module"},{"title":"JoyfillAPIService","icon":"globe","url":"https://joyfill.github.io/api-references/ios/JoyfillAPIService/documentation/joyfillapiservice","href":"/ios/api-reference/api-service-module"},{"title":"JoyfillFormulas","icon":"calculator","url":"https://joyfill.github.io/api-references/ios/JoyfillFormulas/documentation/joyfillformulas","href":"/ios/api-reference/formulas-module"},{"title":"JoyfillModel","icon":"box","url":"https://joyfill.github.io/api-references/ios/JoyfillModel/documentation/joyfillmodel","href":"/ios/api-reference/model-module"}]},{"group":"Resources","pages":[{"title":"Release Notes","icon":"notes","href":"/ios/changelogs/RELEASE_NOTES"},{"title":"Security","icon":"shield-check","href":"/ios/about/security"}]}]},{"dropdown":"Kotlin SDK","icon":"android","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","href":"/kotlin/getting-started"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","href":"/kotlin/guides/modes"},{"title":"Image Upload Handling","icon":"image","href":"/kotlin/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","href":"/kotlin/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","href":"/kotlin/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","href":"/kotlin/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","href":"/kotlin/guides/event-handling"},{"title":"Form Configuration","icon":"gear","href":"/kotlin/guides/form-configuration"},{"title":"Navigation","icon":"compass","href":"/kotlin/guides/navigation"},{"title":"Decorators","icon":"sparkles","href":"/kotlin/guides/decorators"}]},{"group":"API Reference","pages":[{"title":"Kotlin API Reference","icon":"code","url":"https://joyfill.github.io/api-references/kotlin/","href":"/kotlin/api-reference/kotlin-docs"}]},{"group":"Resources","pages":[{"title":"Release Notes","icon":"android","href":"/kotlin/changelogs/releases"},{"title":"Migration guide","icon":"file-export","href":"/kotlin/changelogs/migration-guide"},{"title":"Security","icon":"shield-check","href":"/kotlin/about/security"}]}]},{"dropdown":"React Native SDK","icon":"react","groups":[{"group":"Getting Started","pages":[{"title":"React Native","icon":"react","href":"/react-native/introduction"}]},{"group":"Resources","pages":[{"title":"Release Notes","icon":{"name":"globe","style":"regular","library":"fontawesome"},"href":"/release-notes"}]}]},{"dropdown":"Web SDK","icon":"globe","groups":[{"group":"Getting Started","pages":[{"title":"Getting started","icon":"rocket","href":"/web/getting-started/Getting-Started"},{"title":"Listening for changes","icon":"ear","href":"/web/getting-started/Listening-for-changes"}]},{"group":"Guides","pages":[{"title":"Form Modes","icon":"toggle-on","href":"/web/guides/modes"},{"title":"Image Upload Handling","icon":"image","href":"/web/guides/image-upload-handling"},{"title":"Required Field Validation","icon":"check-circle","href":"/web/guides/required-field-validation"},{"title":"Populating and Extracting Data","icon":"database","href":"/web/guides/populating-and-extracting-data"},{"title":"Schema Validation","icon":"shield-check","href":"/web/guides/schema-validation"},{"title":"Event Handling","icon":"bolt","href":"/web/guides/event-handling"},{"title":"Configuring Field Settings","icon":"gear","href":"/web/guides/fieldsettings-configuration"},{"title":"Conditional Logic","icon":"lightbulb","href":"/web/guides/conditional-logic"},{"title":"Formulas","icon":"calculator","href":"/web/guides/formulas"},{"title":"Customize Draggable Fields","icon":"grip-vertical","href":"/web/guides/customize-draggable-fields"},{"title":"PDF File Uploads","icon":"file-upload","href":"/web/guides/pdf-file-uploads"},{"title":"Generate PDF Downloads","icon":"file-export","href":"/web/guides/joydoc-exporter"},{"title":"Navigation","icon":"compass","href":"/web/guides/external-navigation"},{"title":"Decorators","icon":"sparkles","href":"/web/guides/decorators"}]},{"group":"Sample Projects","pages":[{"title":"JS CDN","href":"/web/guides/sample-projects-js-cdn"},{"title":"JS Module","href":"/web/guides/sample-projects-js-module"},{"title":"React","href":"/web/guides/sample-projects-react"},{"title":"Angular","href":"/web/guides/sample-projects-angular"}]},{"group":"API Reference","pages":[{"title":"API Overview","icon":"code","href":"/web/api-reference/overview"}]},{"group":"Resources","pages":[{"title":"Release Notes","icon":"globe","href":"/web/changelogs/releases"},{"title":"Security Advisory: Compromised @joyfill npm beta releases and public github repos","sidebarTitle":"Security Advisory","description":"JOYFILL-SA-2026-001 — post-mortem and advisory for compromised @joyfill npm beta releases and public github repos: root cause, affected versions, how to check whether you are impacted, and remediation steps.","icon":"triangle-exclamation","href":"/web/about/security-advisory"}]}]},{"dropdown":"REST API","icon":"code","groups":[{"group":"Getting Started","pages":[{"title":"Overview","href":"/api/introduction"},{"title":"Authentication","description":"How to authenticate with the Joyfill Platform","href":"/api/authentication"},{"title":"Identifiers","href":"/api/identifiers"},{"title":"Search","href":"/api/platform-api-search"}]},{"group":"Documents","pages":[{"title":"Overview","href":"/api/documents/overview"},{"openapi":"post /documents","title":"Create a document","href":"/api/documents/create-a-document"},{"openapi":"post /documents/bulk","title":"Bulk create documents","href":"/api/documents/bulk-create-documents"},{"openapi":"post /documents/{identifier}","title":"Update a document","href":"/api/documents/update-a-document"},{"openapi":"post /documents/{identifier}/changelogs","title":"Update a document via changelogs","href":"/api/documents/update-a-document-via-changelogs"},{"openapi":"delete /documents/{identifier}","title":"Delete a document","href":"/api/documents/delete-a-document"},{"openapi":"get /documents/{identifier}","title":"Retrieve a document","href":"/api/documents/retrieve-a-document"},{"openapi":"get /documents","title":"List all documents","href":"/api/documents/list-all-documents"},{"openapi":"post /documents/search","title":"Search all documents","href":"/api/documents/search-all-documents"},{"openapi":"post /documents/{identifier}/files/datauri","title":"Create a image upload (data uri)","href":"/api/documents/create-a-image-upload-data-uri"},{"openapi":"post /documents/{identifier}/exports/pdf","title":"Create a document pdf export","href":"/api/documents/create-a-document-pdf-export"},{"openapi":"post /documents/exports/pdf","title":"Create a document pdf export using Raw JSON Payload","href":"/api/documents/create-a-document-pdf-export-using-raw-json-payload"}]},{"group":"Templates","pages":[{"title":"Overview","href":"/api/templates/overview-templates"},{"openapi":"post /templates","title":"Create a template","href":"/api/templates/create-a-template"},{"openapi":"post /templates/{identifier}","title":"Update a template","href":"/api/templates/update-a-template"},{"openapi":"post /templates/{identifier}/documents","title":"Sync template documents","href":"/api/templates/sync-template-documents"},{"openapi":"delete /templates/{identifier}","title":"Delete a template","href":"/api/templates/delete-a-template"},{"openapi":"get /templates/{identifier}","title":"Retrieve a template","href":"/api/templates/retrieve-a-template"},{"openapi":"get /templates","title":"List all templates","href":"/api/templates/list-all-templates"}]},{"group":"Groups","pages":[{"title":"Overview","href":"/api/groups/overview-groups"},{"openapi":"post /groups","title":"Create a group","href":"/api/groups/create-a-group"},{"openapi":"delete /groups/{identifier}","title":"Delete a group","href":"/api/groups/delete-a-group"},{"openapi":"get /groups","title":"List all groups","href":"/api/groups/list-all-groups"},{"openapi":"get /groups/{identifier}","title":"Retrieve a group","href":"/api/groups/retrieve-a-group"},{"openapi":"post /groups/{identifier}","title":"Update a group","href":"/api/groups/update-a-group"}]},{"group":"Users","pages":[{"title":"Overview","href":"/api/users/overview-users"},{"openapi":"post /users","title":"Create a user","href":"/api/users/create-a-user"},{"openapi":"delete /users/{identifier}","title":"Delete a user","href":"/api/users/delete-a-user"},{"openapi":"get /users/{identifier}","title":"Retrieve a user","href":"/api/users/retrieve-a-user"},{"openapi":"get /users","title":"List all users","href":"/api/users/list-all-users"},{"openapi":"post /users/{identifier}/access_tokens","title":"Create a user access token","href":"/api/users/create-a-user-access-token"},{"openapi":"delete /users/{identifier}/access_tokens/{token}","title":"Delete a user access token","href":"/api/users/delete-a-user-access-token"},{"openapi":"get /users/{identifier}/access_tokens","title":"List all user access tokens","href":"/api/users/list-all-user-access-tokens"}]},{"group":"Utilities","pages":[{"openapi":"post /utilities/pdf/to/png/datauri","title":"Convert PDF to PNGs (data uri)","href":"/api/utilities/convert-pdf-to-pngs-data-uri"}]}]},{"dropdown":"Joyfill Dev Sandbox","icon":"cube","groups":[{"group":"Getting Started","pages":[{"title":"Joyfill Manager","href":"/joyfill-dev-sandbox/platform-joyfill-manager"},{"title":"Setup","href":"/joyfill-dev-sandbox/setup"},{"title":"Webhooks","href":"/joyfill-dev-sandbox/webhooks"},{"title":"Joyfill Managed","href":"/joyfill-dev-sandbox/pdf-generator-joyfill"},{"title":"Key Terminology","href":"/joyfill-dev-sandbox/key-terminology"},{"title":"How To Create Templates","href":"/joyfill-dev-sandbox/how-to-create-templates"}]}]}]},"title":"Overview - Joyfill Documentation","buildId":"dpl_22zLaHtK6fmmSqApXTTP5tC7UBZn","deploymentId":"dpl_22zLaHtK6fmmSqApXTTP5tC7UBZn","dynamics":[],"chunks":[]}