Datkey is secure because we never store the API Key in our database. Instead we store the encrypted version of the API Key. This means that even if our database is compromised, your API Keys are safe. You should follow a similar pattern in your own applications by providing the API key to your user and not storing it in your database either.We manage the keys by using the unique id that each key is given when it is created. This id allows you as developer to update or delete the key, but this id cannot be used to verify the key.
We don’t store API Keys, we store a hash of the API Key (AES256). This is then stored in our database. When you attempt to verify the API Key, we hash the API Key you provide and compare it to the hash we have stored. If they match, then the API Key is valid.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Datkey","colors":{"primary":"#09090b","light":"#EAE6E0","dark":"#18181b"},"favicon":"/favicon.svg","logo":{"light":"https://mintcdn.com/shege/_uloP0G2YcSRVi9A/logo/light.svg?fit=max\u0026auto=format\u0026n=_uloP0G2YcSRVi9A\u0026q=85\u0026s=3fd84008056ab5a6b143ab19a3c6dc76","dark":"https://mintcdn.com/shege/_uloP0G2YcSRVi9A/logo/dark.svg?fit=max\u0026auto=format\u0026n=_uloP0G2YcSRVi9A\u0026q=85\u0026s=a5d78cb8ea1e1e24cf8de80cd4ca3798"},"background":{"decoration":null,"color":{"light":"#fafaf9","dark":"#0c0a09"}},"navbar":{"links":[{"label":"Support","href":"mailto:hi@shege.tech"}],"primary":{"type":"button","label":"Dashboard","href":"https://datkey.dev/dashboard"}},"footer":{"socials":{"twitter":"https://twitter.com/datkeyHQ","github":"https://github.com/shegeHQ"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shege","hasAudioNarration":false,"actualSubdomain":"shege","customDomains":["docs.datkey.dev"],"gitSource":{"type":"github","owner":"shegehq","repo":"datkey-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a20c41a4a41910615812fbd","collectionId":"b83cf913-d43a-4cf0-92f4-bd9afe983256","schemaVersion":"v2"},"entitlements":{},"buildId":"6a20c41a4a41910615812fbd:success","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"Endpoints","count":6},{"language":"default","tag":"Documentation","count":4},{"language":"default","tag":"API Documentation","count":2},{"language":"default","tag":"Features","count":2},{"language":"default","tag":"Get Started","count":2}]},"assistantConfig":{},"basePath":"","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":"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":"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":"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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"security","slug":"/security","pageMetadata":{"title":"Security","description":"How does Datkey work? What security measures are in place?","icon":"lock","href":"/security"},"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: \"How does Datkey work? What security measures are in place?\"\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={p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`why-is-datkey-secure-what-makes-it-secure`,children:`Why is Datkey secure? What makes it secure?`}),`\n`,_jsx(_components.p,{children:`Datkey is secure because we never store the API Key in our database. Instead we store the encrypted version of the API Key. This means that even if our database is compromised, your API Keys are safe. You should follow a similar pattern in your own applications by providing the API key to your user and not storing it in your database either.`}),`\n`,_jsx(_components.p,{children:`We manage the keys by using the unique id that each key is given when it is created. This id allows you as developer to update or delete the key, but this id cannot be used to verify the key.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-are-api-keys-stored`,children:`Where are API keys stored?`}),`\n`,_jsx(_components.p,{children:`We don’t store API Keys, we store a hash of the API Key (AES256). This is then stored in our database. When you attempt to verify the API Key, we hash the API Key you provide and compare it to the hash we have stored. If they match, then the API Key is valid.`})]})}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":"Security","description":"How does Datkey work? What security measures are in place?","icon":"lock","href":"/security"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why is Datkey secure? What makes it secure?","slug":"why-is-datkey-secure-what-makes-it-secure","depth":2,"children":[]},{"title":"Where are API keys stored?","slug":"where-are-api-keys-stored","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"shege","siteName":"Datkey","title":"Security - Datkey","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-07T00:42:26.573Z","originalFileLocation":"security.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=\"How does Datkey work? What security measures are in place?\">\u003cmeta data-mint-head name=\"application-name\" content=\"Datkey\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_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/shege/YCDp4ePlXCUuPZvP/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Security - Datkey\">\u003cmeta data-mint-head property=\"og:description\" content=\"How does Datkey work? What security measures are in place?\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Datkey\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.datkey.dev/security\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shege.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Security\u0026amp;description=How+does+Datkey+work%3F+What+security+measures+are+in+place%3F\u0026amp;theme=8ad8b8a044177aa763554aa6\u0026amp;signature=18ca9efdcc767f45ef56d7104e9d5bfef6e23e4aa957b587f510e82aae07c8da\">\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=\"Security - Datkey\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How does Datkey work? What security measures are in place?\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shege.mintlify.app/_mintlify/api/og/v2?division=Get+Started\u0026amp;title=Security\u0026amp;description=How+does+Datkey+work%3F+What+security+measures+are+in+place%3F\u0026amp;theme=8ad8b8a044177aa763554aa6\u0026amp;signature=18ca9efdcc767f45ef56d7104e9d5bfef6e23e4aa957b587f510e82aae07c8da\">\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/shege/YCDp4ePlXCUuPZvP/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Datkey\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#09090b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.datkey.dev/security\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/security.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.datkey.dev/#organization\",\"name\":\"Datkey\",\"url\":\"https://docs.datkey.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/shege/_uloP0G2YcSRVi9A/logo/light.svg?fit=max\u0026auto=format\u0026n=_uloP0G2YcSRVi9A\u0026q=85\u0026s=3fd84008056ab5a6b143ab19a3c6dc76\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.datkey.dev#website\",\"name\":\"Datkey\",\"url\":\"https://docs.datkey.dev\",\"publisher\":{\"@id\":\"https://docs.datkey.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.datkey.dev/security#webpage\",\"url\":\"https://docs.datkey.dev/security\",\"name\":\"Security\",\"description\":\"How does Datkey work? What security measures are in place?\",\"dateModified\":\"2026-01-07T00:42:26.573Z\",\"isPartOf\":{\"@id\":\"https://docs.datkey.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.datkey.dev/security#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.datkey.dev/security#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.datkey.dev/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Security\",\"item\":\"https://docs.datkey.dev/security\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.datkey.dev/security#article\",\"headline\":\"Security\",\"name\":\"Security\",\"description\":\"How does Datkey work? What security measures are in place?\",\"url\":\"https://docs.datkey.dev/security\",\"mainEntityOfPage\":{\"@id\":\"https://docs.datkey.dev/security#webpage\"},\"dateModified\":\"2026-01-07T00:42:26.573Z\",\"publisher\":{\"@id\":\"https://docs.datkey.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.datkey.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Datkey\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Datkey","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Introduction","description":"Welcome to Datkey docs!","icon":"hourglass-start","href":"/introduction"},{"title":"Security","icon":"lock","href":"/security"}]},{"group":"Features","pages":[{"title":"Time limited Keys","description":"How to create Time limited API Keys in Datkey","icon":"clock","href":"/features/time-limited-keys"},{"title":"Use limited keys","icon":"code","href":"/features/use-limited-keys"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/authentication"}]}]},"basePath":"","title":"Security - Datkey","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}