[{"data":1,"prerenderedAt":1828},["ShallowReactive",2],{"content-query-sirM4mMvy5":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":1822,"_id":1823,"_source":1824,"_file":1825,"_stem":1826,"_extension":1827},"\u002Fdocs\u002Ffeatures\u002Fapi-keys","features",false,"","API Keys","Generate and manage API keys for authentication",{"type":11,"children":12,"toc":1780},"root",[13,21,27,34,39,64,69,75,82,159,165,170,180,186,191,197,205,241,249,285,293,329,337,373,379,422,430,438,444,450,463,510,554,713,719,724,747,753,759,785,791,796,861,867,872,880,885,913,919,925,930,961,967,972,998,1008,1014,1019,1050,1060,1066,1071,1102,1112,1118,1124,1167,1173,1181,1235,1243,1276,1315,1321,1326,1360,1366,1372,1405,1411,1419,1424,1451,1457,1465,1470,1493,1499,1504,1522,1532,1538,1544,1549,1557,1562,1570,1576,1581,1731,1737,1774],{"type":14,"tag":15,"props":16,"children":18},"element","h1",{"id":17},"api-keys",[19],{"type":20,"value":8},"text",{"type":14,"tag":22,"props":23,"children":24},"p",{},[25],{"type":20,"value":26},"Create and manage API keys to authenticate your applications and integrations with CredVault.",{"type":14,"tag":28,"props":29,"children":31},"h2",{"id":30},"what-are-api-keys",[32],{"type":20,"value":33},"What are API Keys?",{"type":14,"tag":22,"props":35,"children":36},{},[37],{"type":20,"value":38},"API keys are secure credentials that allow:",{"type":14,"tag":40,"props":41,"children":42},"ul",{},[43,49,54,59],{"type":14,"tag":44,"props":45,"children":46},"li",{},[47],{"type":20,"value":48},"Your applications to connect to CredVault",{"type":14,"tag":44,"props":50,"children":51},{},[52],{"type":20,"value":53},"External tools to integrate with your platform",{"type":14,"tag":44,"props":55,"children":56},{},[57],{"type":20,"value":58},"Automated scripts to access your data",{"type":14,"tag":44,"props":60,"children":61},{},[62],{"type":20,"value":63},"Team members to use the API programmatically",{"type":14,"tag":22,"props":65,"children":66},{},[67],{"type":20,"value":68},"An API key proves \"I am authorized to access this\" without sharing passwords.",{"type":14,"tag":28,"props":70,"children":72},{"id":71},"creating-an-api-key",[73],{"type":20,"value":74},"Creating an API Key",{"type":14,"tag":76,"props":77,"children":79},"h3",{"id":78},"generate-new-key",[80],{"type":20,"value":81},"Generate New Key",{"type":14,"tag":83,"props":84,"children":85},"ol",{},[86,98,107,112,117,150],{"type":14,"tag":44,"props":87,"children":88},{},[89,91,96],{"type":20,"value":90},"Click ",{"type":14,"tag":92,"props":93,"children":94},"strong",{},[95],{"type":20,"value":8},{"type":20,"value":97}," in sidebar",{"type":14,"tag":44,"props":99,"children":100},{},[101,102],{"type":20,"value":90},{"type":14,"tag":92,"props":103,"children":104},{},[105],{"type":20,"value":106},"Create New Key",{"type":14,"tag":44,"props":108,"children":109},{},[110],{"type":20,"value":111},"Give it a name: \"Mobile App\", \"Data Pipeline\", \"AI Integration\"",{"type":14,"tag":44,"props":113,"children":114},{},[115],{"type":20,"value":116},"Choose permissions (see \"Scopes\" below)",{"type":14,"tag":44,"props":118,"children":119},{},[120,122],{"type":20,"value":121},"Set expiration (optional):\n",{"type":14,"tag":40,"props":123,"children":124},{},[125,130,135,140,145],{"type":14,"tag":44,"props":126,"children":127},{},[128],{"type":20,"value":129},"Never expires",{"type":14,"tag":44,"props":131,"children":132},{},[133],{"type":20,"value":134},"30 days",{"type":14,"tag":44,"props":136,"children":137},{},[138],{"type":20,"value":139},"90 days",{"type":14,"tag":44,"props":141,"children":142},{},[143],{"type":20,"value":144},"1 year",{"type":14,"tag":44,"props":146,"children":147},{},[148],{"type":20,"value":149},"Custom date",{"type":14,"tag":44,"props":151,"children":152},{},[153,154],{"type":20,"value":90},{"type":14,"tag":92,"props":155,"children":156},{},[157],{"type":20,"value":158},"Generate",{"type":14,"tag":76,"props":160,"children":162},{"id":161},"key-information",[163],{"type":20,"value":164},"Key Information",{"type":14,"tag":22,"props":166,"children":167},{},[168],{"type":20,"value":169},"Your key shows:",{"type":14,"tag":171,"props":172,"children":174},"pre",{"code":173},"Key Name: Production API Key\nCreated: 2024-06-12 10:30 UTC\nStatus: Active\nPermissions: Read databases, Run queries\nExpires: 2025-06-12\nLast Used: 2024-06-12 14:22 UTC\nLast Rotated: Never\n",[175],{"type":14,"tag":176,"props":177,"children":178},"code",{"__ignoreMap":7},[179],{"type":20,"value":173},{"type":14,"tag":28,"props":181,"children":183},{"id":182},"understanding-scopes",[184],{"type":20,"value":185},"Understanding Scopes",{"type":14,"tag":22,"props":187,"children":188},{},[189],{"type":20,"value":190},"Scopes limit what each key can do. Choose carefully:",{"type":14,"tag":76,"props":192,"children":194},{"id":193},"available-scopes",[195],{"type":20,"value":196},"Available Scopes",{"type":14,"tag":22,"props":198,"children":199},{},[200],{"type":14,"tag":92,"props":201,"children":202},{},[203],{"type":20,"value":204},"Read",{"type":14,"tag":40,"props":206,"children":207},{},[208,219,230],{"type":14,"tag":44,"props":209,"children":210},{},[211,217],{"type":14,"tag":176,"props":212,"children":214},{"className":213},[],[215],{"type":20,"value":216},"database:read",{"type":20,"value":218}," - Read data from databases",{"type":14,"tag":44,"props":220,"children":221},{},[222,228],{"type":14,"tag":176,"props":223,"children":225},{"className":224},[],[226],{"type":20,"value":227},"metadata:read",{"type":20,"value":229}," - View data catalog",{"type":14,"tag":44,"props":231,"children":232},{},[233,239],{"type":14,"tag":176,"props":234,"children":236},{"className":235},[],[237],{"type":20,"value":238},"logs:read",{"type":20,"value":240}," - View activity logs",{"type":14,"tag":22,"props":242,"children":243},{},[244],{"type":14,"tag":92,"props":245,"children":246},{},[247],{"type":20,"value":248},"Write",{"type":14,"tag":40,"props":250,"children":251},{},[252,263,274],{"type":14,"tag":44,"props":253,"children":254},{},[255,261],{"type":14,"tag":176,"props":256,"children":258},{"className":257},[],[259],{"type":20,"value":260},"database:write",{"type":20,"value":262}," - Insert\u002Fupdate\u002Fdelete data",{"type":14,"tag":44,"props":264,"children":265},{},[266,272],{"type":14,"tag":176,"props":267,"children":269},{"className":268},[],[270],{"type":20,"value":271},"notebook:create",{"type":20,"value":273}," - Create new notebooks",{"type":14,"tag":44,"props":275,"children":276},{},[277,283],{"type":14,"tag":176,"props":278,"children":280},{"className":279},[],[281],{"type":20,"value":282},"experiment:write",{"type":20,"value":284}," - Create ML experiments",{"type":14,"tag":22,"props":286,"children":287},{},[288],{"type":14,"tag":92,"props":289,"children":290},{},[291],{"type":20,"value":292},"Execute",{"type":14,"tag":40,"props":294,"children":295},{},[296,307,318],{"type":14,"tag":44,"props":297,"children":298},{},[299,305],{"type":14,"tag":176,"props":300,"children":302},{"className":301},[],[303],{"type":20,"value":304},"query:execute",{"type":20,"value":306}," - Run queries",{"type":14,"tag":44,"props":308,"children":309},{},[310,316],{"type":14,"tag":176,"props":311,"children":313},{"className":312},[],[314],{"type":20,"value":315},"function:invoke",{"type":20,"value":317}," - Call serverless functions",{"type":14,"tag":44,"props":319,"children":320},{},[321,327],{"type":14,"tag":176,"props":322,"children":324},{"className":323},[],[325],{"type":20,"value":326},"orchestration:execute",{"type":20,"value":328}," - Trigger pipelines",{"type":14,"tag":22,"props":330,"children":331},{},[332],{"type":14,"tag":92,"props":333,"children":334},{},[335],{"type":20,"value":336},"Admin",{"type":14,"tag":40,"props":338,"children":339},{},[340,351,362],{"type":14,"tag":44,"props":341,"children":342},{},[343,349],{"type":14,"tag":176,"props":344,"children":346},{"className":345},[],[347],{"type":20,"value":348},"team:manage",{"type":20,"value":350}," - Add\u002Fremove team members",{"type":14,"tag":44,"props":352,"children":353},{},[354,360],{"type":14,"tag":176,"props":355,"children":357},{"className":356},[],[358],{"type":20,"value":359},"settings:modify",{"type":20,"value":361}," - Change configuration",{"type":14,"tag":44,"props":363,"children":364},{},[365,371],{"type":14,"tag":176,"props":366,"children":368},{"className":367},[],[369],{"type":20,"value":370},"billing:manage",{"type":20,"value":372}," - Modify billing",{"type":14,"tag":76,"props":374,"children":376},{"id":375},"best-practices-for-scopes",[377],{"type":20,"value":378},"Best Practices for Scopes",{"type":14,"tag":40,"props":380,"children":381},{},[382,392,402,412],{"type":14,"tag":44,"props":383,"children":384},{},[385,390],{"type":14,"tag":92,"props":386,"children":387},{},[388],{"type":20,"value":389},"Principle of least privilege",{"type":20,"value":391}," - Only grant needed permissions",{"type":14,"tag":44,"props":393,"children":394},{},[395,400],{"type":14,"tag":92,"props":396,"children":397},{},[398],{"type":20,"value":399},"Read-only keys",{"type":20,"value":401}," - For data analysis and dashboards",{"type":14,"tag":44,"props":403,"children":404},{},[405,410],{"type":14,"tag":92,"props":406,"children":407},{},[408],{"type":20,"value":409},"Write keys",{"type":20,"value":411}," - Only for data ingestion",{"type":14,"tag":44,"props":413,"children":414},{},[415,420],{"type":14,"tag":92,"props":416,"children":417},{},[418],{"type":20,"value":419},"Separate keys",{"type":20,"value":421}," - Different key for each application",{"type":14,"tag":22,"props":423,"children":424},{},[425],{"type":14,"tag":92,"props":426,"children":427},{},[428],{"type":20,"value":429},"Example scopes:",{"type":14,"tag":171,"props":431,"children":433},{"code":432},"Mobile app: database:read, notebook:read\nData pipeline: database:write, query:execute\nPublic dashboard: database:read only\nAdmin tool: all permissions\n",[434],{"type":14,"tag":176,"props":435,"children":436},{"__ignoreMap":7},[437],{"type":20,"value":432},{"type":14,"tag":28,"props":439,"children":441},{"id":440},"using-your-api-key",[442],{"type":20,"value":443},"Using Your API Key",{"type":14,"tag":76,"props":445,"children":447},{"id":446},"in-code",[448],{"type":20,"value":449},"In Code",{"type":14,"tag":22,"props":451,"children":452},{},[453,455,461],{"type":20,"value":454},"Include your key in the ",{"type":14,"tag":176,"props":456,"children":458},{"className":457},[],[459],{"type":20,"value":460},"Authorization",{"type":20,"value":462}," header:",{"type":14,"tag":171,"props":464,"children":468},{"code":465,"language":466,"meta":7,"className":467,"style":7},"curl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  https:\u002F\u002Fapi.credvault.io\u002Fv1\u002Fdatabases\n","bash","language-bash shiki shiki-themes github-dark",[469],{"type":14,"tag":176,"props":470,"children":471},{"__ignoreMap":7},[472,501],{"type":14,"tag":473,"props":474,"children":477},"span",{"class":475,"line":476},"line",1,[478,484,490,496],{"type":14,"tag":473,"props":479,"children":481},{"style":480},"--shiki-default:#B392F0",[482],{"type":20,"value":483},"curl",{"type":14,"tag":473,"props":485,"children":487},{"style":486},"--shiki-default:#79B8FF",[488],{"type":20,"value":489}," -H",{"type":14,"tag":473,"props":491,"children":493},{"style":492},"--shiki-default:#9ECBFF",[494],{"type":20,"value":495}," \"Authorization: Bearer YOUR_API_KEY\"",{"type":14,"tag":473,"props":497,"children":498},{"style":486},[499],{"type":20,"value":500}," \\\n",{"type":14,"tag":473,"props":502,"children":504},{"class":475,"line":503},2,[505],{"type":14,"tag":473,"props":506,"children":507},{"style":492},[508],{"type":20,"value":509},"  https:\u002F\u002Fapi.credvault.io\u002Fv1\u002Fdatabases\n",{"type":14,"tag":171,"props":511,"children":515},{"code":512,"language":513,"meta":7,"className":514,"style":7},"import credvault\n\nclient = credvault.Client(api_key=\"YOUR_API_KEY\")\ndatabases = client.list_databases()\n","python","language-python shiki shiki-themes github-dark",[516],{"type":14,"tag":176,"props":517,"children":518},{"__ignoreMap":7},[519,527,536,545],{"type":14,"tag":473,"props":520,"children":521},{"class":475,"line":476},[522],{"type":14,"tag":473,"props":523,"children":524},{},[525],{"type":20,"value":526},"import credvault\n",{"type":14,"tag":473,"props":528,"children":529},{"class":475,"line":503},[530],{"type":14,"tag":473,"props":531,"children":533},{"emptyLinePlaceholder":532},true,[534],{"type":20,"value":535},"\n",{"type":14,"tag":473,"props":537,"children":539},{"class":475,"line":538},3,[540],{"type":14,"tag":473,"props":541,"children":542},{},[543],{"type":20,"value":544},"client = credvault.Client(api_key=\"YOUR_API_KEY\")\n",{"type":14,"tag":473,"props":546,"children":548},{"class":475,"line":547},4,[549],{"type":14,"tag":473,"props":550,"children":551},{},[552],{"type":20,"value":553},"databases = client.list_databases()\n",{"type":14,"tag":171,"props":555,"children":559},{"code":556,"language":557,"meta":7,"className":558,"style":7},"const credvault = require('credvault-js');\n\nconst client = new credvault.Client({\n  apiKey: 'YOUR_API_KEY'\n});\n\nconst databases = await client.listDatabases();\n","javascript","language-javascript shiki shiki-themes github-dark",[560],{"type":14,"tag":176,"props":561,"children":562},{"__ignoreMap":7},[563,603,610,646,659,668,676],{"type":14,"tag":473,"props":564,"children":565},{"class":475,"line":476},[566,572,577,582,587,593,598],{"type":14,"tag":473,"props":567,"children":569},{"style":568},"--shiki-default:#F97583",[570],{"type":20,"value":571},"const",{"type":14,"tag":473,"props":573,"children":574},{"style":486},[575],{"type":20,"value":576}," credvault",{"type":14,"tag":473,"props":578,"children":579},{"style":568},[580],{"type":20,"value":581}," =",{"type":14,"tag":473,"props":583,"children":584},{"style":480},[585],{"type":20,"value":586}," require",{"type":14,"tag":473,"props":588,"children":590},{"style":589},"--shiki-default:#E1E4E8",[591],{"type":20,"value":592},"(",{"type":14,"tag":473,"props":594,"children":595},{"style":492},[596],{"type":20,"value":597},"'credvault-js'",{"type":14,"tag":473,"props":599,"children":600},{"style":589},[601],{"type":20,"value":602},");\n",{"type":14,"tag":473,"props":604,"children":605},{"class":475,"line":503},[606],{"type":14,"tag":473,"props":607,"children":608},{"emptyLinePlaceholder":532},[609],{"type":20,"value":535},{"type":14,"tag":473,"props":611,"children":612},{"class":475,"line":538},[613,617,622,626,631,636,641],{"type":14,"tag":473,"props":614,"children":615},{"style":568},[616],{"type":20,"value":571},{"type":14,"tag":473,"props":618,"children":619},{"style":486},[620],{"type":20,"value":621}," client",{"type":14,"tag":473,"props":623,"children":624},{"style":568},[625],{"type":20,"value":581},{"type":14,"tag":473,"props":627,"children":628},{"style":568},[629],{"type":20,"value":630}," new",{"type":14,"tag":473,"props":632,"children":633},{"style":589},[634],{"type":20,"value":635}," credvault.",{"type":14,"tag":473,"props":637,"children":638},{"style":480},[639],{"type":20,"value":640},"Client",{"type":14,"tag":473,"props":642,"children":643},{"style":589},[644],{"type":20,"value":645},"({\n",{"type":14,"tag":473,"props":647,"children":648},{"class":475,"line":547},[649,654],{"type":14,"tag":473,"props":650,"children":651},{"style":589},[652],{"type":20,"value":653},"  apiKey: ",{"type":14,"tag":473,"props":655,"children":656},{"style":492},[657],{"type":20,"value":658},"'YOUR_API_KEY'\n",{"type":14,"tag":473,"props":660,"children":662},{"class":475,"line":661},5,[663],{"type":14,"tag":473,"props":664,"children":665},{"style":589},[666],{"type":20,"value":667},"});\n",{"type":14,"tag":473,"props":669,"children":671},{"class":475,"line":670},6,[672],{"type":14,"tag":473,"props":673,"children":674},{"emptyLinePlaceholder":532},[675],{"type":20,"value":535},{"type":14,"tag":473,"props":677,"children":679},{"class":475,"line":678},7,[680,684,689,693,698,703,708],{"type":14,"tag":473,"props":681,"children":682},{"style":568},[683],{"type":20,"value":571},{"type":14,"tag":473,"props":685,"children":686},{"style":486},[687],{"type":20,"value":688}," databases",{"type":14,"tag":473,"props":690,"children":691},{"style":568},[692],{"type":20,"value":581},{"type":14,"tag":473,"props":694,"children":695},{"style":568},[696],{"type":20,"value":697}," await",{"type":14,"tag":473,"props":699,"children":700},{"style":589},[701],{"type":20,"value":702}," client.",{"type":14,"tag":473,"props":704,"children":705},{"style":480},[706],{"type":20,"value":707},"listDatabases",{"type":14,"tag":473,"props":709,"children":710},{"style":589},[711],{"type":20,"value":712},"();\n",{"type":14,"tag":76,"props":714,"children":716},{"id":715},"in-integrations",[717],{"type":20,"value":718},"In Integrations",{"type":14,"tag":22,"props":720,"children":721},{},[722],{"type":20,"value":723},"Many tools let you paste your API key:",{"type":14,"tag":83,"props":725,"children":726},{},[727,732,737,742],{"type":14,"tag":44,"props":728,"children":729},{},[730],{"type":20,"value":731},"Open integration settings (Zapier, Make, etc.)",{"type":14,"tag":44,"props":733,"children":734},{},[735],{"type":20,"value":736},"Find \"API Key\" or \"Authentication\" field",{"type":14,"tag":44,"props":738,"children":739},{},[740],{"type":20,"value":741},"Paste your CredVault API key",{"type":14,"tag":44,"props":743,"children":744},{},[745],{"type":20,"value":746},"Test connection",{"type":14,"tag":28,"props":748,"children":750},{"id":749},"testing-api-keys",[751],{"type":20,"value":752},"Testing API Keys",{"type":14,"tag":76,"props":754,"children":756},{"id":755},"test-connection",[757],{"type":20,"value":758},"Test Connection",{"type":14,"tag":83,"props":760,"children":761},{},[762,767,775,780],{"type":14,"tag":44,"props":763,"children":764},{},[765],{"type":20,"value":766},"Click your API key",{"type":14,"tag":44,"props":768,"children":769},{},[770,771],{"type":20,"value":90},{"type":14,"tag":92,"props":772,"children":773},{},[774],{"type":20,"value":758},{"type":14,"tag":44,"props":776,"children":777},{},[778],{"type":20,"value":779},"System verifies the key works",{"type":14,"tag":44,"props":781,"children":782},{},[783],{"type":20,"value":784},"Shows success\u002Ffailure with error details",{"type":14,"tag":76,"props":786,"children":788},{"id":787},"test-specific-permission",[789],{"type":20,"value":790},"Test Specific Permission",{"type":14,"tag":22,"props":792,"children":793},{},[794],{"type":20,"value":795},"After creating a key, test individual permissions:",{"type":14,"tag":171,"props":797,"children":799},{"code":798,"language":466,"meta":7,"className":467,"style":7},"# Test database read\ncurl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  https:\u002F\u002Fapi.credvault.io\u002Fv1\u002Fdatabases\n\n# Should return: List of databases\n# If denied: {\"error\": \"Insufficient permissions\"}\n",[800],{"type":14,"tag":176,"props":801,"children":802},{"__ignoreMap":7},[803,812,831,838,845,853],{"type":14,"tag":473,"props":804,"children":805},{"class":475,"line":476},[806],{"type":14,"tag":473,"props":807,"children":809},{"style":808},"--shiki-default:#6A737D",[810],{"type":20,"value":811},"# Test database read\n",{"type":14,"tag":473,"props":813,"children":814},{"class":475,"line":503},[815,819,823,827],{"type":14,"tag":473,"props":816,"children":817},{"style":480},[818],{"type":20,"value":483},{"type":14,"tag":473,"props":820,"children":821},{"style":486},[822],{"type":20,"value":489},{"type":14,"tag":473,"props":824,"children":825},{"style":492},[826],{"type":20,"value":495},{"type":14,"tag":473,"props":828,"children":829},{"style":486},[830],{"type":20,"value":500},{"type":14,"tag":473,"props":832,"children":833},{"class":475,"line":538},[834],{"type":14,"tag":473,"props":835,"children":836},{"style":492},[837],{"type":20,"value":509},{"type":14,"tag":473,"props":839,"children":840},{"class":475,"line":547},[841],{"type":14,"tag":473,"props":842,"children":843},{"emptyLinePlaceholder":532},[844],{"type":20,"value":535},{"type":14,"tag":473,"props":846,"children":847},{"class":475,"line":661},[848],{"type":14,"tag":473,"props":849,"children":850},{"style":808},[851],{"type":20,"value":852},"# Should return: List of databases\n",{"type":14,"tag":473,"props":854,"children":855},{"class":475,"line":670},[856],{"type":14,"tag":473,"props":857,"children":858},{"style":808},[859],{"type":20,"value":860},"# If denied: {\"error\": \"Insufficient permissions\"}\n",{"type":14,"tag":76,"props":862,"children":864},{"id":863},"usage-history",[865],{"type":20,"value":866},"Usage History",{"type":14,"tag":22,"props":868,"children":869},{},[870],{"type":20,"value":871},"See what your key has been used for:",{"type":14,"tag":171,"props":873,"children":875},{"code":874},"2024-06-12 14:22 - GET \u002Fdatabases (success)\n2024-06-12 14:25 - POST \u002Fquery (success)\n2024-06-12 14:27 - GET \u002Fexperiments (denied - insufficient scope)\n2024-06-12 14:30 - POST \u002Fnotebooks (success)\n",[876],{"type":14,"tag":176,"props":877,"children":878},{"__ignoreMap":7},[879],{"type":20,"value":874},{"type":14,"tag":22,"props":881,"children":882},{},[883],{"type":20,"value":884},"Click any entry to see:",{"type":14,"tag":40,"props":886,"children":887},{},[888,893,898,903,908],{"type":14,"tag":44,"props":889,"children":890},{},[891],{"type":20,"value":892},"Exact request",{"type":14,"tag":44,"props":894,"children":895},{},[896],{"type":20,"value":897},"Response code",{"type":14,"tag":44,"props":899,"children":900},{},[901],{"type":20,"value":902},"Timestamp",{"type":14,"tag":44,"props":904,"children":905},{},[906],{"type":20,"value":907},"Source IP",{"type":14,"tag":44,"props":909,"children":910},{},[911],{"type":20,"value":912},"User agent",{"type":14,"tag":28,"props":914,"children":916},{"id":915},"managing-keys",[917],{"type":20,"value":918},"Managing Keys",{"type":14,"tag":76,"props":920,"children":922},{"id":921},"rename-key",[923],{"type":20,"value":924},"Rename Key",{"type":14,"tag":22,"props":926,"children":927},{},[928],{"type":20,"value":929},"Change the name anytime:",{"type":14,"tag":83,"props":931,"children":932},{},[933,938,947,952],{"type":14,"tag":44,"props":934,"children":935},{},[936],{"type":20,"value":937},"Click the key",{"type":14,"tag":44,"props":939,"children":940},{},[941,942],{"type":20,"value":90},{"type":14,"tag":92,"props":943,"children":944},{},[945],{"type":20,"value":946},"Edit",{"type":14,"tag":44,"props":948,"children":949},{},[950],{"type":20,"value":951},"Change name",{"type":14,"tag":44,"props":953,"children":954},{},[955,956],{"type":20,"value":90},{"type":14,"tag":92,"props":957,"children":958},{},[959],{"type":20,"value":960},"Save",{"type":14,"tag":76,"props":962,"children":964},{"id":963},"pauseresume",[965],{"type":20,"value":966},"Pause\u002FResume",{"type":14,"tag":22,"props":968,"children":969},{},[970],{"type":20,"value":971},"Temporarily disable a key without deleting:",{"type":14,"tag":83,"props":973,"children":974},{},[975,979,988,993],{"type":14,"tag":44,"props":976,"children":977},{},[978],{"type":20,"value":937},{"type":14,"tag":44,"props":980,"children":981},{},[982,983],{"type":20,"value":90},{"type":14,"tag":92,"props":984,"children":985},{},[986],{"type":20,"value":987},"Pause",{"type":14,"tag":44,"props":989,"children":990},{},[991],{"type":20,"value":992},"Key won't work until resumed",{"type":14,"tag":44,"props":994,"children":995},{},[996],{"type":20,"value":997},"All data about usage is preserved",{"type":14,"tag":22,"props":999,"children":1000},{},[1001,1006],{"type":14,"tag":92,"props":1002,"children":1003},{},[1004],{"type":20,"value":1005},"Use case:",{"type":20,"value":1007}," Pause during maintenance or migration",{"type":14,"tag":76,"props":1009,"children":1011},{"id":1010},"rotate-key",[1012],{"type":20,"value":1013},"Rotate Key",{"type":14,"tag":22,"props":1015,"children":1016},{},[1017],{"type":20,"value":1018},"Create a new key and invalidate the old one:",{"type":14,"tag":83,"props":1020,"children":1021},{},[1022,1026,1035,1040,1045],{"type":14,"tag":44,"props":1023,"children":1024},{},[1025],{"type":20,"value":937},{"type":14,"tag":44,"props":1027,"children":1028},{},[1029,1030],{"type":20,"value":90},{"type":14,"tag":92,"props":1031,"children":1032},{},[1033],{"type":20,"value":1034},"Rotate",{"type":14,"tag":44,"props":1036,"children":1037},{},[1038],{"type":20,"value":1039},"New key is generated",{"type":14,"tag":44,"props":1041,"children":1042},{},[1043],{"type":20,"value":1044},"Old key stops working",{"type":14,"tag":44,"props":1046,"children":1047},{},[1048],{"type":20,"value":1049},"Update applications to use new key",{"type":14,"tag":22,"props":1051,"children":1052},{},[1053,1058],{"type":14,"tag":92,"props":1054,"children":1055},{},[1056],{"type":20,"value":1057},"Recommended:",{"type":20,"value":1059}," Rotate every 90 days or if exposed",{"type":14,"tag":76,"props":1061,"children":1063},{"id":1062},"delete-key",[1064],{"type":20,"value":1065},"Delete Key",{"type":14,"tag":22,"props":1067,"children":1068},{},[1069],{"type":20,"value":1070},"Permanently remove a key:",{"type":14,"tag":83,"props":1072,"children":1073},{},[1074,1078,1087,1092,1097],{"type":14,"tag":44,"props":1075,"children":1076},{},[1077],{"type":20,"value":937},{"type":14,"tag":44,"props":1079,"children":1080},{},[1081,1082],{"type":20,"value":90},{"type":14,"tag":92,"props":1083,"children":1084},{},[1085],{"type":20,"value":1086},"Delete",{"type":14,"tag":44,"props":1088,"children":1089},{},[1090],{"type":20,"value":1091},"Confirm deletion",{"type":14,"tag":44,"props":1093,"children":1094},{},[1095],{"type":20,"value":1096},"Applications using this key will lose access",{"type":14,"tag":44,"props":1098,"children":1099},{},[1100],{"type":20,"value":1101},"Action is permanent",{"type":14,"tag":22,"props":1103,"children":1104},{},[1105,1110],{"type":14,"tag":92,"props":1106,"children":1107},{},[1108],{"type":20,"value":1109},"Warning:",{"type":20,"value":1111}," Make sure nothing uses this key first",{"type":14,"tag":28,"props":1113,"children":1115},{"id":1114},"security-best-practices",[1116],{"type":20,"value":1117},"Security Best Practices",{"type":14,"tag":76,"props":1119,"children":1121},{"id":1120},"protect-your-keys",[1122],{"type":20,"value":1123},"Protect Your Keys",{"type":14,"tag":40,"props":1125,"children":1126},{},[1127,1132,1137,1142,1147,1152,1157,1162],{"type":14,"tag":44,"props":1128,"children":1129},{},[1130],{"type":20,"value":1131},"✅ Store in secure password manager",{"type":14,"tag":44,"props":1133,"children":1134},{},[1135],{"type":20,"value":1136},"✅ Use environment variables, never hardcode",{"type":14,"tag":44,"props":1138,"children":1139},{},[1140],{"type":20,"value":1141},"✅ Don't share keys via email or chat",{"type":14,"tag":44,"props":1143,"children":1144},{},[1145],{"type":20,"value":1146},"✅ Don't commit keys to version control",{"type":14,"tag":44,"props":1148,"children":1149},{},[1150],{"type":20,"value":1151},"✅ Rotate keys regularly",{"type":14,"tag":44,"props":1153,"children":1154},{},[1155],{"type":20,"value":1156},"❌ Don't share keys between applications",{"type":14,"tag":44,"props":1158,"children":1159},{},[1160],{"type":20,"value":1161},"❌ Don't use one key for everything",{"type":14,"tag":44,"props":1163,"children":1164},{},[1165],{"type":20,"value":1166},"❌ Don't set expiration to \"never\" for sensitive operations",{"type":14,"tag":76,"props":1168,"children":1170},{"id":1169},"secure-storage",[1171],{"type":20,"value":1172},"Secure Storage",{"type":14,"tag":22,"props":1174,"children":1175},{},[1176],{"type":14,"tag":92,"props":1177,"children":1178},{},[1179],{"type":20,"value":1180},"In your application:",{"type":14,"tag":171,"props":1182,"children":1184},{"code":1183,"language":513,"meta":7,"className":514,"style":7},"# Good: Use environment variables\nimport os\napi_key = os.environ['CREDVAULT_API_KEY']\n\n# Bad: Don't hardcode\napi_key = \"cv_abc123...\"  # Visible in code!\n",[1185],{"type":14,"tag":176,"props":1186,"children":1187},{"__ignoreMap":7},[1188,1196,1204,1212,1219,1227],{"type":14,"tag":473,"props":1189,"children":1190},{"class":475,"line":476},[1191],{"type":14,"tag":473,"props":1192,"children":1193},{},[1194],{"type":20,"value":1195},"# Good: Use environment variables\n",{"type":14,"tag":473,"props":1197,"children":1198},{"class":475,"line":503},[1199],{"type":14,"tag":473,"props":1200,"children":1201},{},[1202],{"type":20,"value":1203},"import os\n",{"type":14,"tag":473,"props":1205,"children":1206},{"class":475,"line":538},[1207],{"type":14,"tag":473,"props":1208,"children":1209},{},[1210],{"type":20,"value":1211},"api_key = os.environ['CREDVAULT_API_KEY']\n",{"type":14,"tag":473,"props":1213,"children":1214},{"class":475,"line":547},[1215],{"type":14,"tag":473,"props":1216,"children":1217},{"emptyLinePlaceholder":532},[1218],{"type":20,"value":535},{"type":14,"tag":473,"props":1220,"children":1221},{"class":475,"line":661},[1222],{"type":14,"tag":473,"props":1223,"children":1224},{},[1225],{"type":20,"value":1226},"# Bad: Don't hardcode\n",{"type":14,"tag":473,"props":1228,"children":1229},{"class":475,"line":670},[1230],{"type":14,"tag":473,"props":1231,"children":1232},{},[1233],{"type":20,"value":1234},"api_key = \"cv_abc123...\"  # Visible in code!\n",{"type":14,"tag":22,"props":1236,"children":1237},{},[1238],{"type":14,"tag":92,"props":1239,"children":1240},{},[1241],{"type":20,"value":1242},"In configuration files:",{"type":14,"tag":171,"props":1244,"children":1246},{"code":1245,"language":466,"meta":7,"className":467,"style":7},"# .env file (add to .gitignore!)\nCREDVAULT_API_KEY=cv_abc123...\n",[1247],{"type":14,"tag":176,"props":1248,"children":1249},{"__ignoreMap":7},[1250,1258],{"type":14,"tag":473,"props":1251,"children":1252},{"class":475,"line":476},[1253],{"type":14,"tag":473,"props":1254,"children":1255},{"style":808},[1256],{"type":20,"value":1257},"# .env file (add to .gitignore!)\n",{"type":14,"tag":473,"props":1259,"children":1260},{"class":475,"line":503},[1261,1266,1271],{"type":14,"tag":473,"props":1262,"children":1263},{"style":589},[1264],{"type":20,"value":1265},"CREDVAULT_API_KEY",{"type":14,"tag":473,"props":1267,"children":1268},{"style":568},[1269],{"type":20,"value":1270},"=",{"type":14,"tag":473,"props":1272,"children":1273},{"style":492},[1274],{"type":20,"value":1275},"cv_abc123...\n",{"type":14,"tag":171,"props":1277,"children":1279},{"code":1278,"language":466,"meta":7,"className":467,"style":7},"# .gitignore\n.env\n.env.local\nsecrets\u002F\n",[1280],{"type":14,"tag":176,"props":1281,"children":1282},{"__ignoreMap":7},[1283,1291,1299,1307],{"type":14,"tag":473,"props":1284,"children":1285},{"class":475,"line":476},[1286],{"type":14,"tag":473,"props":1287,"children":1288},{"style":808},[1289],{"type":20,"value":1290},"# .gitignore\n",{"type":14,"tag":473,"props":1292,"children":1293},{"class":475,"line":503},[1294],{"type":14,"tag":473,"props":1295,"children":1296},{"style":480},[1297],{"type":20,"value":1298},".env\n",{"type":14,"tag":473,"props":1300,"children":1301},{"class":475,"line":538},[1302],{"type":14,"tag":473,"props":1303,"children":1304},{"style":480},[1305],{"type":20,"value":1306},".env.local\n",{"type":14,"tag":473,"props":1308,"children":1309},{"class":475,"line":547},[1310],{"type":14,"tag":473,"props":1311,"children":1312},{"style":480},[1313],{"type":20,"value":1314},"secrets\u002F\n",{"type":14,"tag":76,"props":1316,"children":1318},{"id":1317},"monitoring-access",[1319],{"type":20,"value":1320},"Monitoring Access",{"type":14,"tag":22,"props":1322,"children":1323},{},[1324],{"type":20,"value":1325},"Check who's using your keys:",{"type":14,"tag":83,"props":1327,"children":1328},{},[1329,1340,1345,1350,1355],{"type":14,"tag":44,"props":1330,"children":1331},{},[1332,1334,1338],{"type":20,"value":1333},"Go to ",{"type":14,"tag":92,"props":1335,"children":1336},{},[1337],{"type":20,"value":8},{"type":20,"value":1339}," dashboard",{"type":14,"tag":44,"props":1341,"children":1342},{},[1343],{"type":20,"value":1344},"See all keys and last used time",{"type":14,"tag":44,"props":1346,"children":1347},{},[1348],{"type":20,"value":1349},"Look for unexpected usage",{"type":14,"tag":44,"props":1351,"children":1352},{},[1353],{"type":20,"value":1354},"Delete any suspicious keys",{"type":14,"tag":44,"props":1356,"children":1357},{},[1358],{"type":20,"value":1359},"Check activity logs for unusual access",{"type":14,"tag":28,"props":1361,"children":1363},{"id":1362},"troubleshooting",[1364],{"type":20,"value":1365},"Troubleshooting",{"type":14,"tag":76,"props":1367,"children":1369},{"id":1368},"key-doesnt-work",[1370],{"type":20,"value":1371},"Key doesn't work",{"type":14,"tag":83,"props":1373,"children":1374},{},[1375,1380,1385,1390,1400],{"type":14,"tag":44,"props":1376,"children":1377},{},[1378],{"type":20,"value":1379},"Verify key is not paused",{"type":14,"tag":44,"props":1381,"children":1382},{},[1383],{"type":20,"value":1384},"Check expiration date",{"type":14,"tag":44,"props":1386,"children":1387},{},[1388],{"type":20,"value":1389},"Verify scopes allow the operation",{"type":14,"tag":44,"props":1391,"children":1392},{},[1393,1395],{"type":20,"value":1394},"Test with ",{"type":14,"tag":176,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":20,"value":758},{"type":14,"tag":44,"props":1401,"children":1402},{},[1403],{"type":20,"value":1404},"Check error message for reason",{"type":14,"tag":76,"props":1406,"children":1408},{"id":1407},"permission-denied-error",[1409],{"type":20,"value":1410},"Permission denied error",{"type":14,"tag":171,"props":1412,"children":1414},{"code":1413},"Error: \"Insufficient permissions for operation\"\n",[1415],{"type":14,"tag":176,"props":1416,"children":1417},{"__ignoreMap":7},[1418],{"type":20,"value":1413},{"type":14,"tag":22,"props":1420,"children":1421},{},[1422],{"type":20,"value":1423},"The key's scopes don't allow this operation:",{"type":14,"tag":83,"props":1425,"children":1426},{},[1427,1432,1441,1446],{"type":14,"tag":44,"props":1428,"children":1429},{},[1430],{"type":20,"value":1431},"Go to the key",{"type":14,"tag":44,"props":1433,"children":1434},{},[1435,1436],{"type":20,"value":90},{"type":14,"tag":92,"props":1437,"children":1438},{},[1439],{"type":20,"value":1440},"Edit Scopes",{"type":14,"tag":44,"props":1442,"children":1443},{},[1444],{"type":20,"value":1445},"Add needed permission",{"type":14,"tag":44,"props":1447,"children":1448},{},[1449],{"type":20,"value":1450},"Save and retry",{"type":14,"tag":76,"props":1452,"children":1454},{"id":1453},"key-expired",[1455],{"type":20,"value":1456},"Key expired",{"type":14,"tag":171,"props":1458,"children":1460},{"code":1459},"Error: \"API key has expired\"\n",[1461],{"type":14,"tag":176,"props":1462,"children":1463},{"__ignoreMap":7},[1464],{"type":20,"value":1459},{"type":14,"tag":22,"props":1466,"children":1467},{},[1468],{"type":20,"value":1469},"Create a new key or rotate the old one:",{"type":14,"tag":83,"props":1471,"children":1472},{},[1473,1478,1488],{"type":14,"tag":44,"props":1474,"children":1475},{},[1476],{"type":20,"value":1477},"Click the expired key",{"type":14,"tag":44,"props":1479,"children":1480},{},[1481,1482,1486],{"type":20,"value":90},{"type":14,"tag":92,"props":1483,"children":1484},{},[1485],{"type":20,"value":1034},{"type":20,"value":1487}," to replace with new",{"type":14,"tag":44,"props":1489,"children":1490},{},[1491],{"type":20,"value":1492},"Update applications with new key",{"type":14,"tag":76,"props":1494,"children":1496},{"id":1495},"lost-my-key",[1497],{"type":20,"value":1498},"Lost my key",{"type":14,"tag":22,"props":1500,"children":1501},{},[1502],{"type":20,"value":1503},"If you forgot to save your key:",{"type":14,"tag":83,"props":1505,"children":1506},{},[1507,1512,1517],{"type":14,"tag":44,"props":1508,"children":1509},{},[1510],{"type":20,"value":1511},"Create a new key (old one still works)",{"type":14,"tag":44,"props":1513,"children":1514},{},[1515],{"type":20,"value":1516},"Delete the old key when done",{"type":14,"tag":44,"props":1518,"children":1519},{},[1520],{"type":20,"value":1521},"Update applications to new key",{"type":14,"tag":22,"props":1523,"children":1524},{},[1525,1530],{"type":14,"tag":92,"props":1526,"children":1527},{},[1528],{"type":20,"value":1529},"Note:",{"type":20,"value":1531}," Keys shown only once. Save immediately after creation.",{"type":14,"tag":28,"props":1533,"children":1535},{"id":1534},"advanced-usage",[1536],{"type":20,"value":1537},"Advanced Usage",{"type":14,"tag":76,"props":1539,"children":1541},{"id":1540},"rate-limiting",[1542],{"type":20,"value":1543},"Rate Limiting",{"type":14,"tag":22,"props":1545,"children":1546},{},[1547],{"type":20,"value":1548},"Each key has rate limits:",{"type":14,"tag":171,"props":1550,"children":1552},{"code":1551},"Free tier: 100 requests\u002Fminute\nStarter: 500 requests\u002Fminute\nPro: 2000 requests\u002Fminute\nEnterprise: Unlimited (negotiated)\n",[1553],{"type":14,"tag":176,"props":1554,"children":1555},{"__ignoreMap":7},[1556],{"type":20,"value":1551},{"type":14,"tag":22,"props":1558,"children":1559},{},[1560],{"type":20,"value":1561},"If you hit limit:",{"type":14,"tag":171,"props":1563,"children":1565},{"code":1564},"Error: \"Rate limit exceeded\"\nWait: 60 seconds before retrying\nSolution: Upgrade plan or use multiple keys\n",[1566],{"type":14,"tag":176,"props":1567,"children":1568},{"__ignoreMap":7},[1569],{"type":20,"value":1564},{"type":14,"tag":76,"props":1571,"children":1573},{"id":1572},"webhook-signatures",[1574],{"type":20,"value":1575},"Webhook Signatures",{"type":14,"tag":22,"props":1577,"children":1578},{},[1579],{"type":20,"value":1580},"Verify webhooks come from CredVault:",{"type":14,"tag":171,"props":1582,"children":1584},{"code":1583,"language":513,"meta":7,"className":514,"style":7},"import hmac\n\n# Secret is your API key\nsecret = \"YOUR_API_KEY\"\nsignature = request.headers.get('X-Webhook-Signature')\nbody = request.get_data()\n\n# Calculate expected signature\nexpected = hmac.new(\n    secret.encode(),\n    body,\n    'sha256'\n).hexdigest()\n\n# Verify\nif signature != expected:\n    raise ValueError(\"Invalid signature\")\n",[1585],{"type":14,"tag":176,"props":1586,"children":1587},{"__ignoreMap":7},[1588,1596,1603,1611,1619,1627,1635,1642,1651,1660,1669,1678,1687,1696,1704,1713,1722],{"type":14,"tag":473,"props":1589,"children":1590},{"class":475,"line":476},[1591],{"type":14,"tag":473,"props":1592,"children":1593},{},[1594],{"type":20,"value":1595},"import hmac\n",{"type":14,"tag":473,"props":1597,"children":1598},{"class":475,"line":503},[1599],{"type":14,"tag":473,"props":1600,"children":1601},{"emptyLinePlaceholder":532},[1602],{"type":20,"value":535},{"type":14,"tag":473,"props":1604,"children":1605},{"class":475,"line":538},[1606],{"type":14,"tag":473,"props":1607,"children":1608},{},[1609],{"type":20,"value":1610},"# Secret is your API key\n",{"type":14,"tag":473,"props":1612,"children":1613},{"class":475,"line":547},[1614],{"type":14,"tag":473,"props":1615,"children":1616},{},[1617],{"type":20,"value":1618},"secret = \"YOUR_API_KEY\"\n",{"type":14,"tag":473,"props":1620,"children":1621},{"class":475,"line":661},[1622],{"type":14,"tag":473,"props":1623,"children":1624},{},[1625],{"type":20,"value":1626},"signature = request.headers.get('X-Webhook-Signature')\n",{"type":14,"tag":473,"props":1628,"children":1629},{"class":475,"line":670},[1630],{"type":14,"tag":473,"props":1631,"children":1632},{},[1633],{"type":20,"value":1634},"body = request.get_data()\n",{"type":14,"tag":473,"props":1636,"children":1637},{"class":475,"line":678},[1638],{"type":14,"tag":473,"props":1639,"children":1640},{"emptyLinePlaceholder":532},[1641],{"type":20,"value":535},{"type":14,"tag":473,"props":1643,"children":1645},{"class":475,"line":1644},8,[1646],{"type":14,"tag":473,"props":1647,"children":1648},{},[1649],{"type":20,"value":1650},"# Calculate expected signature\n",{"type":14,"tag":473,"props":1652,"children":1654},{"class":475,"line":1653},9,[1655],{"type":14,"tag":473,"props":1656,"children":1657},{},[1658],{"type":20,"value":1659},"expected = hmac.new(\n",{"type":14,"tag":473,"props":1661,"children":1663},{"class":475,"line":1662},10,[1664],{"type":14,"tag":473,"props":1665,"children":1666},{},[1667],{"type":20,"value":1668},"    secret.encode(),\n",{"type":14,"tag":473,"props":1670,"children":1672},{"class":475,"line":1671},11,[1673],{"type":14,"tag":473,"props":1674,"children":1675},{},[1676],{"type":20,"value":1677},"    body,\n",{"type":14,"tag":473,"props":1679,"children":1681},{"class":475,"line":1680},12,[1682],{"type":14,"tag":473,"props":1683,"children":1684},{},[1685],{"type":20,"value":1686},"    'sha256'\n",{"type":14,"tag":473,"props":1688,"children":1690},{"class":475,"line":1689},13,[1691],{"type":14,"tag":473,"props":1692,"children":1693},{},[1694],{"type":20,"value":1695},").hexdigest()\n",{"type":14,"tag":473,"props":1697,"children":1699},{"class":475,"line":1698},14,[1700],{"type":14,"tag":473,"props":1701,"children":1702},{"emptyLinePlaceholder":532},[1703],{"type":20,"value":535},{"type":14,"tag":473,"props":1705,"children":1707},{"class":475,"line":1706},15,[1708],{"type":14,"tag":473,"props":1709,"children":1710},{},[1711],{"type":20,"value":1712},"# Verify\n",{"type":14,"tag":473,"props":1714,"children":1716},{"class":475,"line":1715},16,[1717],{"type":14,"tag":473,"props":1718,"children":1719},{},[1720],{"type":20,"value":1721},"if signature != expected:\n",{"type":14,"tag":473,"props":1723,"children":1725},{"class":475,"line":1724},17,[1726],{"type":14,"tag":473,"props":1727,"children":1728},{},[1729],{"type":20,"value":1730},"    raise ValueError(\"Invalid signature\")\n",{"type":14,"tag":28,"props":1732,"children":1734},{"id":1733},"related-topics",[1735],{"type":20,"value":1736},"Related Topics",{"type":14,"tag":40,"props":1738,"children":1739},{},[1740,1752,1763],{"type":14,"tag":44,"props":1741,"children":1742},{},[1743,1750],{"type":14,"tag":1744,"props":1745,"children":1747},"a",{"href":1746},"\u002Fdocs\u002Ffeatures\u002Factivity-logs",[1748],{"type":20,"value":1749},"Activity Logs",{"type":20,"value":1751}," - See API usage",{"type":14,"tag":44,"props":1753,"children":1754},{},[1755,1761],{"type":14,"tag":1744,"props":1756,"children":1758},{"href":1757},"\u002Fdocs\u002Ffeatures\u002Fdatabase-clusters",[1759],{"type":20,"value":1760},"Database Clusters",{"type":20,"value":1762}," - Access with APIs",{"type":14,"tag":44,"props":1764,"children":1765},{},[1766,1772],{"type":14,"tag":1744,"props":1767,"children":1769},{"href":1768},"\u002Fdocs\u002Ffeatures\u002Forchestration",[1770],{"type":20,"value":1771},"Orchestration",{"type":20,"value":1773}," - Run APIs in pipelines",{"type":14,"tag":1775,"props":1776,"children":1777},"style",{},[1778],{"type":20,"value":1779},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":503,"depth":503,"links":1781},[1782,1783,1787,1791,1795,1800,1806,1811,1817,1821],{"id":30,"depth":503,"text":33},{"id":71,"depth":503,"text":74,"children":1784},[1785,1786],{"id":78,"depth":538,"text":81},{"id":161,"depth":538,"text":164},{"id":182,"depth":503,"text":185,"children":1788},[1789,1790],{"id":193,"depth":538,"text":196},{"id":375,"depth":538,"text":378},{"id":440,"depth":503,"text":443,"children":1792},[1793,1794],{"id":446,"depth":538,"text":449},{"id":715,"depth":538,"text":718},{"id":749,"depth":503,"text":752,"children":1796},[1797,1798,1799],{"id":755,"depth":538,"text":758},{"id":787,"depth":538,"text":790},{"id":863,"depth":538,"text":866},{"id":915,"depth":503,"text":918,"children":1801},[1802,1803,1804,1805],{"id":921,"depth":538,"text":924},{"id":963,"depth":538,"text":966},{"id":1010,"depth":538,"text":1013},{"id":1062,"depth":538,"text":1065},{"id":1114,"depth":503,"text":1117,"children":1807},[1808,1809,1810],{"id":1120,"depth":538,"text":1123},{"id":1169,"depth":538,"text":1172},{"id":1317,"depth":538,"text":1320},{"id":1362,"depth":503,"text":1365,"children":1812},[1813,1814,1815,1816],{"id":1368,"depth":538,"text":1371},{"id":1407,"depth":538,"text":1410},{"id":1453,"depth":538,"text":1456},{"id":1495,"depth":538,"text":1498},{"id":1534,"depth":503,"text":1537,"children":1818},[1819,1820],{"id":1540,"depth":538,"text":1543},{"id":1572,"depth":538,"text":1575},{"id":1733,"depth":503,"text":1736},"markdown","content:docs:features:api-keys.md","content","docs\u002Ffeatures\u002Fapi-keys.md","docs\u002Ffeatures\u002Fapi-keys","md",1782233761935]