[{"data":1,"prerenderedAt":472},["ShallowReactive",2],{"apis-dealer-authentication":3},{"id":4,"title":5,"body":6,"description":463,"extension":464,"meta":465,"navigation":467,"path":468,"seo":469,"stem":470,"__hash__":471},"content/apis/dealer/authentication.md","Authentication",{"type":7,"value":8,"toc":445},"minimal",[9,13,17,22,25,33,38,41,76,86,90,93,111,129,133,137,140,151,158,162,166,169,180,184,191,205,209,212,258,262,265,270,313,318,351,355,378,382,385,416,426,430,433,441],[10,11,5],"h1",{"id":12},"authentication",[14,15,16],"p",{},"The CHeKT Public API uses Bearer Token authentication to secure all API requests. You must include a valid API Key in the Authorization header of every request.",[18,19,21],"h2",{"id":20},"pre-requisites","Pre-Requisites",[14,23,24],{},"Before you can use the CHeKT Public API, you need to ensure that:",[26,27,30],"guide-alert",{"title":28,"type":29},"API Key Required","warning",[14,31,32],{},"An API Key must be enabled for your dealer account. You can manage your API Keys through the CHeKT Dealer Portal.",[34,35,37],"h3",{"id":36},"accessing-api-keys","Accessing API Keys",[14,39,40],{},"To access and manage your API Keys:",[42,43,44,52,59,69],"ol",{},[45,46,47,48],"li",{},"Log in to your ",[49,50,51],"strong",{},"CHeKT Dealer Portal",[45,53,54,55,58],{},"Click on the ",[49,56,57],{},"Settings"," gear icon (⚙️)",[45,60,61,62,65,66],{},"Navigate to ",[49,63,64],{},"API Keys"," under ",[49,67,68],{},"Developer Settings",[45,70,71,72,75],{},"You will need ",[49,73,74],{},"\"Developer Tools\""," permissions to access this section",[26,77,80],{"title":78,"type":79},"Permissions Required","info",[14,81,82,83,85],{},"Your account must have ",[49,84,74],{}," permissions to view and manage API Keys. Contact your account administrator if you don't have access.",[18,87,89],{"id":88},"generating-an-api-key","Generating an API Key",[14,91,92],{},"When you generate a new API Key:",[42,94,95,102,108],{},[45,96,97,98,101],{},"Click ",[49,99,100],{},"\"Generate New API Key\""," in the API Keys section",[45,103,104,107],{},[49,105,106],{},"Save the key immediately"," in a safe and secure place",[45,109,110],{},"The key will only be shown once and cannot be retrieved later",[26,112,114],{"title":113,"type":29},"Important Security Note",[115,116,117,123,126],"ul",{},[45,118,119,122],{},[49,120,121],{},"Store your API Key securely"," - treat it like a password",[45,124,125],{},"Never commit API Keys to version control",[45,127,128],{},"Never share your API Key in public forums or repositories",[18,130,132],{"id":131},"managing-api-keys","Managing API Keys",[34,134,136],{"id":135},"lost-or-compromised-keys","Lost or Compromised Keys",[14,138,139],{},"If you lose your API Key or believe it has been compromised:",[42,141,142,145,148],{},[45,143,144],{},"Generate a new API Key in the Developer Settings",[45,146,147],{},"Update your applications with the new key",[45,149,150],{},"Disable the old API Key to prevent unauthorized access",[26,152,155],{"title":153,"type":154},"Key Rotation","success",[14,156,157],{},"You can generate a new API Key at any time and disable the old one without losing access to your account.",[18,159,161],{"id":160},"api-usage","API Usage",[34,163,165],{"id":164},"base-url","Base URL",[14,167,168],{},"All API requests should be directed to:",[170,171,176],"pre",{"className":172,"code":174,"language":175},[173],"language-text","https://api.chekt.com\n","text",[177,178,174],"code",{"__ignoreMap":179},"",[34,181,183],{"id":182},"authentication-header","Authentication Header",[14,185,186,187,190],{},"Include your API Key in the ",[177,188,189],{},"Authorization"," header using the Bearer Token scheme:",[170,192,196],{"className":193,"code":194,"language":195,"meta":179,"style":179},"language-http shiki shiki-themes github-light github-dark","Authorization: Bearer YOUR_API_KEY\n","http",[177,197,198],{"__ignoreMap":179},[199,200,203],"span",{"class":201,"line":202},"line",1,[199,204,194],{},[34,206,208],{"id":207},"example-request","Example Request",[14,210,211],{},"Here's an example of an authenticated API request:",[170,213,217],{"className":214,"code":215,"language":216,"meta":179,"style":179},"language-bash shiki shiki-themes github-light github-dark","curl -X GET https://api.chekt.com/v1/sites \\\n  -H \"Authorization: Bearer your_api_key_here\" \\\n  -H \"Content-Type: application/json\"\n","bash",[177,218,219,239,250],{"__ignoreMap":179},[199,220,221,225,229,233,236],{"class":201,"line":202},[199,222,224],{"class":223},"sScJk","curl",[199,226,228],{"class":227},"sj4cs"," -X",[199,230,232],{"class":231},"sZZnC"," GET",[199,234,235],{"class":231}," https://api.chekt.com/v1/sites",[199,237,238],{"class":227}," \\\n",[199,240,242,245,248],{"class":201,"line":241},2,[199,243,244],{"class":227},"  -H",[199,246,247],{"class":231}," \"Authorization: Bearer your_api_key_here\"",[199,249,238],{"class":227},[199,251,253,255],{"class":201,"line":252},3,[199,254,244],{"class":227},[199,256,257],{"class":231}," \"Content-Type: application/json\"\n",[34,259,261],{"id":260},"authentication-errors","Authentication Errors",[14,263,264],{},"If authentication fails, you'll receive one of the following error responses:",[14,266,267],{},[49,268,269],{},"401 Unauthorized",[170,271,275],{"className":272,"code":273,"language":274,"meta":179,"style":179},"language-json shiki shiki-themes github-light github-dark","{\n  \"error\": \"Unauthorized\",\n  \"message\": \"Invalid or missing API Key\"\n}\n","json",[177,276,277,283,297,307],{"__ignoreMap":179},[199,278,279],{"class":201,"line":202},[199,280,282],{"class":281},"sVt8B","{\n",[199,284,285,288,291,294],{"class":201,"line":241},[199,286,287],{"class":227},"  \"error\"",[199,289,290],{"class":281},": ",[199,292,293],{"class":231},"\"Unauthorized\"",[199,295,296],{"class":281},",\n",[199,298,299,302,304],{"class":201,"line":252},[199,300,301],{"class":227},"  \"message\"",[199,303,290],{"class":281},[199,305,306],{"class":231},"\"Invalid or missing API Key\"\n",[199,308,310],{"class":201,"line":309},4,[199,311,312],{"class":281},"}\n",[14,314,315],{},[49,316,317],{},"403 Forbidden",[170,319,321],{"className":272,"code":320,"language":274,"meta":179,"style":179},"{\n  \"error\": \"Forbidden\",\n  \"message\": \"API Key does not have permission to access this resource\"\n}\n",[177,322,323,327,338,347],{"__ignoreMap":179},[199,324,325],{"class":201,"line":202},[199,326,282],{"class":281},[199,328,329,331,333,336],{"class":201,"line":241},[199,330,287],{"class":227},[199,332,290],{"class":281},[199,334,335],{"class":231},"\"Forbidden\"",[199,337,296],{"class":281},[199,339,340,342,344],{"class":201,"line":252},[199,341,301],{"class":227},[199,343,290],{"class":281},[199,345,346],{"class":231},"\"API Key does not have permission to access this resource\"\n",[199,348,349],{"class":201,"line":309},[199,350,312],{"class":281},[18,352,354],{"id":353},"best-practices","Best Practices",[356,357,358],"guide-check-list",{},[115,359,360,363,366,369,372,375],{},[45,361,362],{},"✓ Store API Keys in environment variables, not in code",[45,364,365],{},"✓ Use different API Keys for development and production",[45,367,368],{},"✓ Rotate API Keys periodically for enhanced security",[45,370,371],{},"✓ Monitor API Key usage in the Developer Settings",[45,373,374],{},"✓ Disable unused API Keys immediately",[45,376,377],{},"✓ Use HTTPS for all API requests (never HTTP)",[18,379,381],{"id":380},"rate-limiting","Rate Limiting",[14,383,384],{},"All API requests are subject to rate limiting to ensure system stability:",[115,386,387,393],{},[45,388,389,392],{},[49,390,391],{},"Rate Limit",": 1000 requests per hour per API Key",[45,394,395,396],{},"Rate limit information is included in response headers:\n",[115,397,398,404,410],{},[45,399,400,403],{},[177,401,402],{},"X-RateLimit-Limit",": Maximum requests per hour",[45,405,406,409],{},[177,407,408],{},"X-RateLimit-Remaining",": Remaining requests in current window",[45,411,412,415],{},[177,413,414],{},"X-RateLimit-Reset",": Time when the rate limit resets (Unix timestamp)",[26,417,419],{"title":418,"type":79},"Rate Limit Exceeded",[14,420,421,422,425],{},"If you exceed the rate limit, you'll receive a ",[177,423,424],{},"429 Too Many Requests"," response. Wait until the rate limit resets before making additional requests.",[18,427,429],{"id":428},"next-steps","Next Steps",[14,431,432],{},"Now that you understand authentication, explore the available API endpoints:",[434,435,436],"guide-next-steps",{},[14,437,438],{},[199,439,440],{},"\n{\n\"title\": \"Sites API\",\n\"description\": \"Manage customer sites and locations\",\n\"link\": \"/apis/dealer/sites\"\n},\n{\n\"title\": \"Contacts API\",\n\"description\": \"Manage site contacts and notifications\",\n\"link\": \"/apis/dealer/contacts\"\n},\n{\n\"title\": \"Arming API\",\n\"description\": \"Control security system arming status\",\n\"link\": \"/apis/dealer/arming\"\n}\n",[442,443,444],"style",{},"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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":179,"searchDepth":252,"depth":252,"links":446},[447,450,451,454,460,461,462],{"id":20,"depth":241,"text":21,"children":448},[449],{"id":36,"depth":252,"text":37},{"id":88,"depth":241,"text":89},{"id":131,"depth":241,"text":132,"children":452},[453],{"id":135,"depth":252,"text":136},{"id":160,"depth":241,"text":161,"children":455},[456,457,458,459],{"id":164,"depth":252,"text":165},{"id":182,"depth":252,"text":183},{"id":207,"depth":252,"text":208},{"id":260,"depth":252,"text":261},{"id":353,"depth":241,"text":354},{"id":380,"depth":241,"text":381},{"id":428,"depth":241,"text":429},"Learn how to authenticate your API requests with CHeKT Public API","md",{"category":466,"order":241},"API Reference",true,"/apis/dealer/authentication",{"title":5,"description":463},"apis/dealer/authentication","qpzHJd0C-9l6aehZ0_lLYOu1IZRNWS16kOt3fP1jgBA",1770959187859]