v2 API keys work differently from v1 keys. Where a v1 key was a Convex document ID, a v2 key is a real secret: a random value that Klipy stores only as a hash, never in plaintext. If you’re migrating an existing integration, see Migrating from v1 first.
Select exactly the scopes the integration needs, for example contacts:read and deals:write. There is no ALL scope — a key can only do what it’s explicitly granted.
3
Choose an access level
Organization-wide — reads and writes any record in the organization. Use this for server-to-server integrations acting on behalf of the whole team.
User-bound — scoped to one user’s own records. Use this when the integration should only ever see what that specific user can see.
Screenshot coming soon
Screenshot coming soon: Settings → API, scope checkboxes and access-level radio
4
Copy the key
The full key (klipy_live_...) is shown once, immediately after creation. Store it in your secrets manager or environment variables — Klipy cannot show it to you again. If you lose it, rotate the key to issue a new one.
Screenshot coming soon
Screenshot coming soon: Key shown once reveal screen with copy button and warning
Treat a v2 key exactly like a password. Anyone holding it can act within its scopes and access level. Never commit it to source control or embed it in client-side code.
Rotating a key issues a new secret on the same key record — the scopes and access level are preserved, only the secret changes.The previous secret keeps working for a short grace window after rotation, so you can update a running integration without downtime: deploy the new key, confirm it works, then the old one stops resolving once the grace window ends.
Revoking a key immediately stops it from authenticating — any request using it returns 401. The key record itself is kept (not deleted) so past API activity remains attributable in your audit history.
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Klipy.ai","description":"Klipy.ai documentation — setup guides, API reference, webhooks, and FAQ.","colors":{"primary":"#1A5EFF","light":"#1A5EFF","dark":"#1A5EFF"},"logo":{"light":"https://mintcdn.com/klipy/lduxd4SezbjnHNXk/logo/logo.svg?fit=max\u0026auto=format\u0026n=lduxd4SezbjnHNXk\u0026q=85\u0026s=1195d93a6cf064e1af46648af36b32c0","dark":"https://mintcdn.com/klipy/lduxd4SezbjnHNXk/logo/logo.svg?fit=max\u0026auto=format\u0026n=lduxd4SezbjnHNXk\u0026q=85\u0026s=1195d93a6cf064e1af46648af36b32c0"},"favicon":"https://mintcdn.com/klipy/lduxd4SezbjnHNXk/favicon.svg?fit=max\u0026auto=format\u0026n=lduxd4SezbjnHNXk\u0026q=85\u0026s=e42e04838415853952461a183ff0e3da","appearance":{"default":"dark","strict":true},"navbar":{"links":[{"href":"https://klipy.ai/demo","label":"Talk to us"}],"primary":{"type":"button","label":"Get Started","href":"https://app.klipy.ai/sign-up?utm_source=docs\u0026utm_medium=referral"}},"footer":{"socials":{"x":"https://x.com/klipyai","github":"https://github.com/Klipy-AI","linkedin":"https://www.linkedin.com/company/klipy","website":"https://klipy.ai"}},"seo":{"metatags":{"canonical":"https://klipy.ai/docs","og:type":"website","og:locale":"en_US","og:site_name":"Klipy.ai Documentation","twitter:card":"summary_large_image","twitter:site":"@klipyai"},"indexing":"navigable"},"fonts":{"family":"Geist"},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-6VZYY8Z827"},"posthog":{"apiKey":"phc_JSf2dY9kVINk9evl52EoxP4e5WqP7KPQY1T7EXVNyNy"}},"contextual":{"options":["copy","chatgpt","claude","perplexity","grok"],"display":"toc"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Back to website","icon":"arrow-left","href":"https://klipy.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"klipy","hasAudioNarration":false,"actualSubdomain":"klipy","customDomains":["klipy.ai"],"gitSource":{"type":"github","owner":"klipyai","repo":"poc-nextjs-nylas","deployBranch":"staging","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a9d416cc24144ea3a47744b","collectionId":"fa1563b6-3561-4b0b-8aea-4fdbaed807d3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a9d416cc24144ea3a47744b"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6a9d416cc24144ea3a47744b","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Developers","count":92},{"language":"default","tag":"Help","count":77},{"language":"default","tag":"API reference","count":72},{"language":"default","tag":"MCP","count":16},{"language":"default","tag":"Plans and tokens","count":15},{"language":"default","tag":"Webhooks","count":15},{"language":"default","tag":"Troubleshooting","count":14},{"language":"default","tag":"Deals","count":12},{"language":"default","tag":"Connections","count":10},{"language":"default","tag":"Your deal history","count":9}]},"assistantConfig":{},"basePath":"/docs","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":"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":"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},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api/v2/issuing-api-keys","slug":"/api/v2/issuing-api-keys","pageMetadata":{"title":"How do I issue API keys?","description":"Create, scope, rotate, and revoke v2 API keys.","keywords":["api key","authentication","v2","scopes","rotation","revoke"],"href":"/api/v2/issuing-api-keys"},"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: \"Create, scope, rotate, and revoke v2 API keys.\"\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`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Step,Steps,Table,Warning}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`v2 API keys work differently from v1 keys. Where a v1 key was a Convex document ID, a v2 key is a real secret: a random value that Klipy stores only as a hash, never in plaintext. If you’re migrating an existing integration, see `,_jsx(_components.a,{href:`/api/v2/migrating-from-v1`,children:`Migrating from v1`}),` first.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-key`,children:`Create a key`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open API settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`https://app.klipy.ai/settings/api`,children:`Settings → API`})}),` in the Klipy app.`]})}),_jsx(Step,{title:`Choose scopes`,children:_jsxs(_components.p,{children:[`Select exactly the scopes the integration needs, for example `,_jsx(_components.code,{children:`contacts:read`}),` and `,_jsx(_components.code,{children:`deals:write`}),`. There is no `,_jsx(_components.code,{children:`ALL`}),` scope — a key can only do what it’s explicitly granted.`]})}),_jsxs(Step,{title:`Choose an access level`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Organization-wide`}),` — reads and writes any record in the organization. Use this for server-to-server integrations acting on behalf of the whole team.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User-bound`}),` — scoped to one user’s own records. Use this when the integration should only ever see what that specific user can see.`]}),`\n`]}),_jsx(Frame,{caption:`Screenshot coming soon: Settings → API, scope checkboxes and access-level radio`,children:_jsx(`div`,{style:{padding:`2.5rem 1rem`,textAlign:`center`,border:`1px dashed currentColor`,borderRadius:`12px`,opacity:.55},children:`Screenshot coming soon`})})]}),_jsxs(Step,{title:`Copy the key`,children:[_jsxs(_components.p,{children:[`The full key (`,_jsx(_components.code,{children:`klipy_live_...`}),`) is shown `,_jsx(_components.strong,{children:`once`}),`, immediately after creation. Store it in your secrets manager or environment variables — Klipy cannot show it to you again. If you lose it, rotate the key to issue a new one.`]}),_jsx(Frame,{caption:`Screenshot coming soon: Key shown once reveal screen with copy button and warning`,children:_jsx(`div`,{style:{padding:`2.5rem 1rem`,textAlign:`center`,border:`1px dashed currentColor`,borderRadius:`12px`,opacity:.55},children:`Screenshot coming soon`})})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Treat a v2 key exactly like a password. Anyone holding it can act within its scopes and access level. Never commit it to source control or embed it in client-side code.`})}),`\n`,_jsx(Heading,{level:`2`,id:`rotate-a-key`,children:`Rotate a key`}),`\n`,_jsx(_components.p,{children:`Rotating a key issues a new secret on the same key record — the scopes and access level are preserved, only the secret changes.`}),`\n`,_jsx(_components.p,{children:`The previous secret keeps working for a short grace window after rotation, so you can update a running integration without downtime: deploy the new key, confirm it works, then the old one stops resolving once the grace window ends.`}),`\n`,_jsx(Heading,{level:`2`,id:`revoke-a-key`,children:`Revoke a key`}),`\n`,_jsxs(_components.p,{children:[`Revoking a key immediately stops it from authenticating — any request using it returns `,_jsx(_components.code,{children:`401`}),`. The key record itself is kept (not deleted) so past API activity remains attributable in your audit history.`]}),`\n`,_jsx(Heading,{level:`2`,id:`key-lifecycle-summary`,children:`Key lifecycle summary`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`State`}),_jsx(_components.th,{children:`Behavior`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`active`})}),_jsx(_components.td,{children:`Authenticates normally.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rotated`}),_jsx(_components.td,{children:`Old secret works until the grace window ends; new secret works immediately.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expired`})}),_jsxs(_components.td,{children:[`If the key has an expiry set and it has passed, requests return `,_jsx(_components.code,{children:`401`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`revoked`})}),_jsxs(_components.td,{children:[`Requests return `,_jsx(_components.code,{children:`401`}),`. Cannot be reactivated — issue a new key instead.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-topics`,children:`Related topics`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api/v2/introduction`,children:`Introduction`}),` — scopes, access levels, and the envelope format.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api/v2/migrating-from-v1`,children:`Migrating from v1`}),` — what changed from v1’s key system.`]}),`\n`]})]})}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":"How do I issue API keys?","description":"Create, scope, rotate, and revoke v2 API keys.","keywords":["api key","authentication","v2","scopes","rotation","revoke"],"href":"/api/v2/issuing-api-keys"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a key","slug":"create-a-key","depth":2,"children":[]},{"title":"Rotate a key","slug":"rotate-a-key","depth":2,"children":[]},{"title":"Revoke a key","slug":"revoke-a-key","depth":2,"children":[]},{"title":"Key lifecycle summary","slug":"key-lifecycle-summary","depth":2,"children":[]},{"title":"Related topics","slug":"related-topics","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"klipy","siteName":"Klipy.ai","title":"How do I issue API keys? - Klipy.ai","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-30T10:42:25.828Z","gitLastModified":"2026-08-03T12:42:44.000Z","originalFileLocation":"api/v2/issuing-api-keys.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Create, scope, rotate, and revoke v2 API keys.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Klipy.ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_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=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How do I issue API keys? - Klipy.ai\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create, scope, rotate, and revoke v2 API keys.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Klipy.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://klipy.ai/docs/api/v2/issuing-api-keys\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://klipy.mintlify.site/docs/_mintlify/api/og/v2?division=API+keys+and+developer+settings\u0026amp;title=How+do+I+issue+API+keys%3F\u0026amp;description=Create%2C+scope%2C+rotate%2C+and+revoke+v2+API+keys.\u0026amp;theme=8289154cb03efe3a93429c45\u0026amp;signature=0e759714ea6537c1f331f2708257b55de9ea4feaf2659c194daf62cf67ddff9c\">\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=\"How do I issue API keys? - Klipy.ai\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create, scope, rotate, and revoke v2 API keys.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://klipy.mintlify.site/docs/_mintlify/api/og/v2?division=API+keys+and+developer+settings\u0026amp;title=How+do+I+issue+API+keys%3F\u0026amp;description=Create%2C+scope%2C+rotate%2C+and+revoke+v2+API+keys.\u0026amp;theme=8289154cb03efe3a93429c45\u0026amp;signature=0e759714ea6537c1f331f2708257b55de9ea4feaf2659c194daf62cf67ddff9c\">\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=\"/docs/mintlify-assets/_mintlify/favicons/klipy/NdJ5ntUhx19YA_2A/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Klipy.ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A5EFF\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://klipy.ai/docs/api/v2/issuing-api-keys\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/v2/issuing-api-keys.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://klipy.ai/#organization\",\"name\":\"Klipy.ai\",\"url\":\"https://klipy.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/klipy/lduxd4SezbjnHNXk/logo/logo.svg?fit=max\u0026auto=format\u0026n=lduxd4SezbjnHNXk\u0026q=85\u0026s=1195d93a6cf064e1af46648af36b32c0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://klipy.ai/docs#website\",\"name\":\"Klipy.ai\",\"url\":\"https://klipy.ai/docs\",\"publisher\":{\"@id\":\"https://klipy.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://klipy.ai/docs/api/v2/issuing-api-keys#webpage\",\"url\":\"https://klipy.ai/docs/api/v2/issuing-api-keys\",\"name\":\"How do I issue API keys?\",\"description\":\"Create, scope, rotate, and revoke v2 API keys.\",\"dateModified\":\"2026-08-03T12:42:44.000Z\",\"isPartOf\":{\"@id\":\"https://klipy.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://klipy.ai/docs/api/v2/issuing-api-keys#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://klipy.ai/docs/api/v2/issuing-api-keys#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Klipy.ai\",\"item\":\"https://klipy.ai/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do I issue API keys?\",\"item\":\"https://klipy.ai/docs/api/v2/issuing-api-keys\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://klipy.ai/docs/api/v2/issuing-api-keys#article\",\"headline\":\"How do I issue API keys?\",\"name\":\"How do I issue API keys?\",\"description\":\"Create, scope, rotate, and revoke v2 API keys.\",\"url\":\"https://klipy.ai/docs/api/v2/issuing-api-keys\",\"mainEntityOfPage\":{\"@id\":\"https://klipy.ai/docs/api/v2/issuing-api-keys#webpage\"},\"dateModified\":\"2026-08-03T12:42:44.000Z\",\"keywords\":\"api key, authentication, v2, scopes, rotation, revoke\",\"publisher\":{\"@id\":\"https://klipy.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://klipy.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Klipy.ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Klipy.ai","nav":{"global":{"anchors":[{"anchor":"Back to website","icon":"arrow-left","href":"https://klipy.ai"}]},"tabs":[{"tab":"Help","icon":"book-open","pages":[{"title":"Help","href":"/introduction"}]},{"tab":"MCP","icon":"plug-zap","pages":[{"title":"MCP","href":"/guides/mcp/overview"}]},{"tab":"Developers","icon":"square-terminal","groups":[{"group":"Overview","icon":"house","pages":[{"title":"How does the Klipy API work?","href":"/api/v2/introduction"},{"title":"How do I migrate from API v1?","description":"What changed between the v1 and v2 Klipy APIs, and how to move an existing integration over.","href":"/api/v2/migrating-from-v1"}]},{"group":"API keys and developer settings","icon":"key","pages":[{"title":"How do I issue API keys?","href":"/api/v2/issuing-api-keys"}]},{"group":"API reference","icon":"code","pages":[{"group":"Contacts","icon":"user","pages":[{"title":"list contact","description":"Lists contacts, ordered by `created_at` (descending) by default. Supports cursor pagination via the `cursor` and `limit` query parameters. It also supports the `created_since` / `updated_since` time-window filters.","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /contacts","href":"/api-reference/contacts/list-contact"},{"title":"create contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /contacts","href":"/api-reference/contacts/create-contact"},{"title":"upsert contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json put /contacts","href":"/api-reference/contacts/upsert-contact"},{"title":"batch create contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /contacts/batch","href":"/api-reference/contacts/batch-create-contact"},{"title":"get contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /contacts/{id}","href":"/api-reference/contacts/get-contact"},{"title":"update contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /contacts/{id}","href":"/api-reference/contacts/update-contact"},{"title":"remove contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /contacts/{id}","href":"/api-reference/contacts/remove-contact"}]},{"group":"Companies","icon":"building-2","pages":[{"title":"list company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /companies","href":"/api-reference/companies/list-company"},{"title":"create company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /companies","href":"/api-reference/companies/create-company"},{"title":"upsert company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json put /companies","href":"/api-reference/companies/upsert-company"},{"title":"batch create company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /companies/batch","href":"/api-reference/companies/batch-create-company"},{"title":"get company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /companies/{id}","href":"/api-reference/companies/get-company"},{"title":"update company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /companies/{id}","href":"/api-reference/companies/update-company"},{"title":"remove company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /companies/{id}","href":"/api-reference/companies/remove-company"}]},{"group":"Deals","icon":"handshake","pages":[{"title":"list deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /deals","href":"/api-reference/deals/list-deal"},{"title":"create deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /deals","href":"/api-reference/deals/create-deal"},{"title":"batch create deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /deals/batch","href":"/api-reference/deals/batch-create-deal"},{"title":"get deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /deals/{id}","href":"/api-reference/deals/get-deal"},{"title":"update deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /deals/{id}","href":"/api-reference/deals/update-deal"},{"title":"remove deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /deals/{id}","href":"/api-reference/deals/remove-deal"},{"title":"list deal company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /deals/{id}/companies","href":"/api-reference/deals/list-deal-company"},{"title":"link deal company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /deals/{id}/companies","href":"/api-reference/deals/link-deal-company"},{"title":"unlink deal company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /deals/{id}/companies/{company_id}","href":"/api-reference/deals/unlink-deal-company"},{"title":"list deal contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /deals/{id}/contacts","href":"/api-reference/deals/list-deal-contact"},{"title":"link deal contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /deals/{id}/contacts","href":"/api-reference/deals/link-deal-contact"},{"title":"unlink deal contact","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /deals/{id}/contacts/{contact_id}","href":"/api-reference/deals/unlink-deal-contact"}]},{"group":"Pipelines","icon":"kanban","pages":[{"title":"list pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /pipelines","href":"/api-reference/pipelines/list-pipeline"},{"title":"create pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /pipelines","href":"/api-reference/pipelines/create-pipeline"},{"title":"batch create pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /pipelines/batch","href":"/api-reference/pipelines/batch-create-pipeline"},{"title":"get pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /pipelines/{id}","href":"/api-reference/pipelines/get-pipeline"},{"title":"update pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /pipelines/{id}","href":"/api-reference/pipelines/update-pipeline"},{"title":"remove pipeline","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /pipelines/{id}","href":"/api-reference/pipelines/remove-pipeline"}]},{"group":"Tasks","icon":"square-check","pages":[{"title":"list task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /tasks","href":"/api-reference/tasks/list-task"},{"title":"create task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /tasks","href":"/api-reference/tasks/create-task"},{"title":"batch create task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /tasks/batch","href":"/api-reference/tasks/batch-create-task"},{"title":"get task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /tasks/{id}","href":"/api-reference/tasks/get-task"},{"title":"update task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /tasks/{id}","href":"/api-reference/tasks/update-task"},{"title":"remove task","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /tasks/{id}","href":"/api-reference/tasks/remove-task"}]},{"group":"Notes","icon":"file-text","pages":[{"title":"list note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /notes","href":"/api-reference/notes/list-note"},{"title":"create note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /notes","href":"/api-reference/notes/create-note"},{"title":"batch create note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /notes/batch","href":"/api-reference/notes/batch-create-note"},{"title":"get note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /notes/{id}","href":"/api-reference/notes/get-note"},{"title":"update note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /notes/{id}","href":"/api-reference/notes/update-note"},{"title":"remove note","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /notes/{id}","href":"/api-reference/notes/remove-note"},{"title":"list note record","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /notes/{id}/records","href":"/api-reference/notes/list-note-record"},{"title":"link note record","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /notes/{id}/records","href":"/api-reference/notes/link-note-record"},{"title":"unlink note record","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /notes/{id}/records/{record_id}","href":"/api-reference/notes/unlink-note-record"}]},{"group":"Segments","icon":"filter","pages":[{"title":"list segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /segments","href":"/api-reference/segments/list-segment"},{"title":"create segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /segments","href":"/api-reference/segments/create-segment"},{"title":"batch create segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /segments/batch","href":"/api-reference/segments/batch-create-segment"},{"title":"get segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /segments/{id}","href":"/api-reference/segments/get-segment"},{"title":"update segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json patch /segments/{id}","href":"/api-reference/segments/update-segment"},{"title":"remove segment","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /segments/{id}","href":"/api-reference/segments/remove-segment"},{"title":"list segment member","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /segments/{id}/members","href":"/api-reference/segments/list-segment-member"},{"title":"link segment member","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /segments/{id}/members","href":"/api-reference/segments/link-segment-member"},{"title":"unlink segment member","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /segments/{id}/members/{record_id}","href":"/api-reference/segments/unlink-segment-member"}]},{"group":"Interactions","icon":"activity","pages":[{"title":"list interaction","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /interactions","href":"/api-reference/interactions/list-interaction"},{"title":"create interaction","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /interactions","href":"/api-reference/interactions/create-interaction"},{"title":"batch create interaction","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json post /interactions/batch","href":"/api-reference/interactions/batch-create-interaction"},{"title":"get interaction","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /interactions/{id}","href":"/api-reference/interactions/get-interaction"}]},{"group":"Meetings","icon":"calendar","pages":[{"title":"list meeting","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /meetings","href":"/api-reference/meetings/list-meeting"},{"title":"get meeting","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /meetings/{id}","href":"/api-reference/meetings/get-meeting"},{"title":"get meeting company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /meetings/{id}/company","href":"/api-reference/meetings/get-meeting-company"},{"title":"set meeting company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json put /meetings/{id}/company","href":"/api-reference/meetings/set-meeting-company"},{"title":"clear meeting company","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /meetings/{id}/company","href":"/api-reference/meetings/clear-meeting-company"},{"title":"get meeting deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /meetings/{id}/deal","href":"/api-reference/meetings/get-meeting-deal"},{"title":"set meeting deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json put /meetings/{id}/deal","href":"/api-reference/meetings/set-meeting-deal"},{"title":"clear meeting deal","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json delete /meetings/{id}/deal","href":"/api-reference/meetings/clear-meeting-deal"}]},{"group":"Recordings","icon":"video","pages":[{"title":"list recording","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /recordings","href":"/api-reference/recordings/list-recording"},{"title":"get recording","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /recordings/{id}","href":"/api-reference/recordings/get-recording"}]},{"group":"Bookings","icon":"calendar-check","pages":[{"title":"list booking","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /bookings","href":"/api-reference/bookings/list-booking"},{"title":"get booking","deprecated":null,"version":null,"openapi":"/api/v2/openapi.json get /bookings/{id}","href":"/api-reference/bookings/get-booking"}]}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"How do Klipy webhooks work?","sidebarTitle":"Introduction","href":"/webhooks/introduction"},{"title":"Which webhook events are available?","sidebarTitle":"Event types","href":"/webhooks/event-types"},{"title":"lead.captured","sidebarTitle":"lead.captured","href":"/webhooks/lead-captured"},{"title":"interaction.captured","sidebarTitle":"interaction.captured","href":"/webhooks/interaction-captured"},{"title":"booking.created","sidebarTitle":"booking.created","href":"/webhooks/booking-created"},{"title":"booking.rescheduled","sidebarTitle":"booking.rescheduled","href":"/webhooks/booking-rescheduled"},{"title":"booking.cancelled","sidebarTitle":"booking.cancelled","href":"/webhooks/booking-cancelled"},{"title":"deal.created","sidebarTitle":"deal.created","href":"/webhooks/deal-created"},{"title":"deal.moved","sidebarTitle":"deal.moved","href":"/webhooks/deal-moved"},{"title":"deal.closed","sidebarTitle":"deal.closed","href":"/webhooks/deal-closed"},{"title":"deal.contact_added","sidebarTitle":"deal.contact_added","href":"/webhooks/deal-contact-added"},{"title":"contact.job_changed","sidebarTitle":"contact.job_changed","href":"/webhooks/contact-job-changed"},{"title":"meeting.starting_soon","sidebarTitle":"meeting.starting_soon","href":"/webhooks/meeting-starting-soon"},{"title":"meeting.completed","sidebarTitle":"meeting.completed","href":"/webhooks/meeting-completed"},{"title":"meeting.no_showed","sidebarTitle":"meeting.no_showed","href":"/webhooks/meeting-no-showed"}]},{"group":"Fixes: errors and rate limits","icon":"life-buoy","pages":[{"title":"Why is my API request failing?","href":"/api/v2/fixes-errors"},{"title":"Why did my webhook fail or retry?","href":"/webhooks/fixes-errors-retries"}]}]}]},"basePath":"","title":"How do I issue API keys? - Klipy.ai","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":["07c022d89b"],"chunks":["Frame-BDAj7nBh.js","DynamicMarkdown-Bq09mRwR.js"]}