Create a separate read_only key for an agent that only needs to search. A read-only key can use search_videos, list_collections, get_collection, and get_video. It cannot use upload_video or other write operations.Create the key from Settings → API Keys. Key management requires an authenticated dashboard session.
An API key can access the resources permitted for its account. You cannot currently restrict a key to selected collections.If an agent must see only a subset of content, place that content in a separate Pureframe AI account and issue a key for that account.
A read-only key limits writes, but it does not prevent an agent from reading sensitive content available to that account.
If a key is exposed or an integration behaves unexpectedly, revoke the key from Settings → API Keys. Replace it with a new key only after you identify and correct the exposure.
Agent tool calls count toward per-key rate limits. Handle 429 responses and cap the number of tool calls your agent can make for one user request. See Rate limits.
The remote MCP endpoint uses a Bearer token in the Authorization header. Store the token in your client’s secret or environment configuration. Do not place it in prompts, logs, or source control.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Pureframe AI API Documentation","description":"Explore guides, API docs, and examples for the Pureframe AI API.","colors":{"primary":"#DA5400","light":"#ff985f","dark":"#DA5400"},"logo":{"light":"https://mintcdn.com/pureframe-1adebf0b/vJmo5XNUgO1_W850/images/light.svg?fit=max\u0026auto=format\u0026n=vJmo5XNUgO1_W850\u0026q=85\u0026s=177778b1bfa3ad182322f0b816a4776e","dark":"https://mintcdn.com/pureframe-1adebf0b/vJmo5XNUgO1_W850/images/dark.svg?fit=max\u0026auto=format\u0026n=vJmo5XNUgO1_W850\u0026q=85\u0026s=4c2cfec7044903cb663cccb9a3b216a8"},"favicon":{"light":"https://mintcdn.com/pureframe-1adebf0b/vJmo5XNUgO1_W850/images/favicon-light.svg?fit=max\u0026auto=format\u0026n=vJmo5XNUgO1_W850\u0026q=85\u0026s=b5691ab1e221b8bc7222fe7d922c850e","dark":"https://mintcdn.com/pureframe-1adebf0b/vJmo5XNUgO1_W850/images/favicon-dark.svg?fit=max\u0026auto=format\u0026n=vJmo5XNUgO1_W850\u0026q=85\u0026s=bd63ef6e551865aa0ec0031137ceeca6"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"mailto:support@pureframe.ai","label":"Support"}],"primary":{"type":"button","label":"API Platform","href":"https://platform.pureframe.ai"}},"footer":{"socials":{"github":"https://github.com/pureframeai","x":"https://x.com/pureframeai"}},"seo":{"metatags":{"title":"Pureframe AI API Documentation","description":"Explore guides, API docs, and examples for the Pureframe AI API.","og:type":"website","og:site_name":"Pureframe AI Documentation","og:title":"Pureframe AI API Documentation","og:description":"Explore guides, API docs, and examples for the Pureframe AI API."}},"fonts":{"family":"DM Sans"},"markdown":{"schema":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"pureframe-1adebf0b","hasAudioNarration":false,"actualSubdomain":"pureframe-1adebf0b","customDomains":["docs.pureframe.ai"],"gitSource":{"type":"github","owner":"pureframeai","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6abac1319814ec1cdfa22f4d","collectionId":"3e7c6e98-1cbc-476e-b260-45bd4e526b86","liveDeploymentHistoryId":"6abac1319814ec1cdfa22f4d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6abac1319814ec1cdfa22f4d","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":54},{"language":"default","tag":"Documentation","count":39},{"language":"default","tag":"Search","count":15},{"language":"default","tag":"Production","count":7},{"language":"default","tag":"Video Processing","count":7},{"language":"default","tag":"Webhooks","count":7},{"language":"default","tag":"Agents","count":6},{"language":"default","tag":"Get Started","count":5},{"language":"default","tag":"Collections","count":5},{"language":"default","tag":"Resources","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":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":"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":"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":"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":"editor-agent-model-picker","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":"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}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"agents/agent-security","slug":"/agents/agent-security","pageMetadata":{"title":"Agent Security","description":"Limit agent access to your library and respond to compromised credentials.","href":"/agents/agent-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: \"Limit agent access to your library and respond to compromised credentials.\"\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,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Agents use standard Pureframe AI API keys. The permissions on the key determine which operations the agent can request.`}),`\n`,_jsx(Heading,{level:`2`,id:`use-a-read-only-key`,children:`Use a read-only key`}),`\n`,_jsxs(_components.p,{children:[`Create a separate `,_jsx(_components.code,{children:`read_only`}),` key for an agent that only needs to search. A read-only key can use `,_jsx(_components.code,{children:`search_videos`}),`, `,_jsx(_components.code,{children:`list_collections`}),`, `,_jsx(_components.code,{children:`get_collection`}),`, and `,_jsx(_components.code,{children:`get_video`}),`. It cannot use `,_jsx(_components.code,{children:`upload_video`}),` or other write operations.`]}),`\n`,_jsxs(_components.p,{children:[`Create the key from `,_jsx(_components.a,{href:`https://platform.pureframe.ai/settings/api-keys`,children:`Settings → API Keys`}),`. Key management requires an authenticated dashboard session.`]}),`\n`,_jsx(Heading,{level:`2`,id:`understand-the-scope`,children:`Understand the scope`}),`\n`,_jsx(_components.p,{children:`An API key can access the resources permitted for its account. You cannot currently restrict a key to selected collections.`}),`\n`,_jsx(_components.p,{children:`If an agent must see only a subset of content, place that content in a separate Pureframe AI account and issue a key for that account.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A read-only key limits writes, but it does not prevent an agent from reading sensitive content available to that account.`})}),`\n`,_jsx(Heading,{level:`2`,id:`revocation-is-immediate`,children:`Revocation is immediate`}),`\n`,_jsxs(_components.p,{children:[`If a key is exposed or an integration behaves unexpectedly, revoke the key from `,_jsx(_components.a,{href:`https://platform.pureframe.ai/settings/api-keys`,children:`Settings → API Keys`}),`. Replace it with a new key only after you identify and correct the exposure.`]}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limits-apply-the-same-way`,children:`Rate limits apply the same way`}),`\n`,_jsxs(_components.p,{children:[`Agent tool calls count toward per-key rate limits. Handle `,_jsx(_components.code,{children:`429`}),` responses and cap the number of tool calls your agent can make for one user request. See `,_jsx(_components.a,{href:`/production/rate-limits`,children:`Rate limits`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`remote-mcp-authentication`,children:`Remote MCP authentication`}),`\n`,_jsxs(_components.p,{children:[`The remote MCP endpoint uses a Bearer token in the `,_jsx(_components.code,{children:`Authorization`}),` header. Store the token in your client’s secret or environment configuration. Do not place it in prompts, logs, or source control.`]})]})}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":"Agent Security","description":"Limit agent access to your library and respond to compromised credentials.","href":"/agents/agent-security"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Use a read-only key","slug":"use-a-read-only-key","depth":2,"children":[]},{"title":"Understand the scope","slug":"understand-the-scope","depth":2,"children":[]},{"title":"Revocation is immediate","slug":"revocation-is-immediate","depth":2,"children":[]},{"title":"Rate limits apply the same way","slug":"rate-limits-apply-the-same-way","depth":2,"children":[]},{"title":"Remote MCP authentication","slug":"remote-mcp-authentication","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"pureframe-1adebf0b","siteName":"Pureframe AI API Documentation","title":"Pureframe AI API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T18:44:55.284Z","originalFileLocation":"agents/agent-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=\"Limit agent access to your library and respond to compromised credentials.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Pureframe AI API 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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Pureframe AI API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Explore guides, API docs, and examples for the Pureframe AI API.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Pureframe AI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.pureframe.ai/agents/agent-security\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://pureframe-1adebf0b.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Agent+Security\u0026amp;description=Limit+agent+access+to+your+library+and+respond+to+compromised+credentials.\u0026amp;theme=91bf7d4e6ea96ea0340a0a14\u0026amp;signature=b68bec25ef6a5e9211e5883cd84815935622885e3fd66d32bc453901a0b26127\">\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=\"Pureframe AI API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Explore guides, API docs, and examples for the Pureframe AI API.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://pureframe-1adebf0b.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Agent+Security\u0026amp;description=Limit+agent+access+to+your+library+and+respond+to+compromised+credentials.\u0026amp;theme=91bf7d4e6ea96ea0340a0a14\u0026amp;signature=b68bec25ef6a5e9211e5883cd84815935622885e3fd66d32bc453901a0b26127\">\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/pureframe-1adebf0b/mQBwtLonvx3zC8N_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Pureframe AI API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#DA5400\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.pureframe.ai/agents/agent-security\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agents/agent-security.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.pureframe.ai/#organization\",\"name\":\"Pureframe AI API Documentation\",\"url\":\"https://docs.pureframe.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/pureframe-1adebf0b/vJmo5XNUgO1_W850/images/light.svg?fit=max\u0026auto=format\u0026n=vJmo5XNUgO1_W850\u0026q=85\u0026s=177778b1bfa3ad182322f0b816a4776e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.pureframe.ai#website\",\"name\":\"Pureframe AI API Documentation\",\"url\":\"https://docs.pureframe.ai\",\"publisher\":{\"@id\":\"https://docs.pureframe.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.pureframe.ai/agents/agent-security#webpage\",\"url\":\"https://docs.pureframe.ai/agents/agent-security\",\"name\":\"Agent Security\",\"description\":\"Limit agent access to your library and respond to compromised credentials.\",\"dateModified\":\"2026-09-28T18:44:55.284Z\",\"isPartOf\":{\"@id\":\"https://docs.pureframe.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.pureframe.ai/agents/agent-security#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.pureframe.ai/agents/agent-security#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents\",\"item\":\"https://docs.pureframe.ai/agents/agent-vision\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agent Security\",\"item\":\"https://docs.pureframe.ai/agents/agent-security\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.pureframe.ai/agents/agent-security#article\",\"headline\":\"Agent Security\",\"name\":\"Agent Security\",\"description\":\"Limit agent access to your library and respond to compromised credentials.\",\"url\":\"https://docs.pureframe.ai/agents/agent-security\",\"mainEntityOfPage\":{\"@id\":\"https://docs.pureframe.ai/agents/agent-security#webpage\"},\"dateModified\":\"2026-09-28T18:44:55.284Z\",\"publisher\":{\"@id\":\"https://docs.pureframe.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.pureframe.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Pureframe AI API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Pureframe AI API Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Overview","href":"/get-started/overview"},{"title":"Quickstart","href":"/get-started/quickstart"},{"title":"Authentication","href":"/get-started/authentication"},{"title":"API Keys","href":"/get-started/api-keys"},{"title":"Key Concepts","href":"/get-started/key-concepts"}]},{"group":"Search","pages":[{"title":"Overview","href":"/search/overview"},{"title":"Text Search","href":"/search/text"},{"title":"Image Search","href":"/search/image"},{"title":"Transcript Search","href":"/search/transcript"},{"title":"Combined Queries","href":"/search/combined-queries"},{"title":"Search a Video","href":"/search/search-a-video"},{"title":"Search a Collection","href":"/search/search-a-collection"},{"title":"Search Results","href":"/search/search-results"},{"title":"Timestamp Precision","href":"/search/exact-timestamps"},{"title":"Frame Map (Beta)","href":"/search/frame-map"}]},{"group":"Video Processing","pages":[{"title":"Upload videos","href":"/video-processing/upload-videos"},{"title":"Processing lifecycle","href":"/video-processing/processing-lifecycle"},{"title":"Collections","href":"/video-processing/collections"},{"title":"Transcripts","href":"/video-processing/transcripts"},{"title":"Search signals","href":"/video-processing/search-signals"},{"title":"Metadata","href":"/video-processing/metadata"},{"title":"Processing status","href":"/video-processing/processing-status"}]},{"group":"Agents","pages":[{"title":"Agent Vision","href":"/agents/agent-vision"},{"title":"MCP Overview","href":"/agents/mcp-overview"},{"title":"Connect an Agent","href":"/agents/connect-an-agent"},{"title":"Source Backed Results","description":"Use video IDs, timestamps, images, and transcript text to support agent answers.","href":"/agents/source-backed-results"},{"title":"Agent Security","href":"/agents/agent-security"},{"title":"Agent Setup","description":"Machine-readable setup instructions for AI agents connecting to the Pureframe AI MCP server.","href":"/agent-setup/prompt"}]},{"group":"Production","pages":[{"title":"Webhooks","href":"/production/webhooks"},{"title":"Rate Limits","href":"/production/rate-limits"},{"title":"Errors","href":"/production/errors"},{"title":"Performance","href":"/production/performance"},{"title":"Usage and Billing","href":"/production/usage-and-billing"},{"title":"Data Handling","href":"/production/data-handling"},{"title":"Security","href":"/production/security"}]},{"group":"Resources","pages":[{"title":"Examples","href":"/resources/examples"},{"title":"Use Cases","href":"/resources/use-cases"},{"title":"Changelog","href":"/resources/changelog"},{"title":"FAQ","href":"/resources/faq"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"SDK Reference","pages":[{"title":"SDK Reference","href":"/sdks/python-sdk"}]}]},"title":"Pureframe AI API Documentation","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}