PageSourceSearch

https://docs.checkflow.io/assets/js/baeff1df.ea59617c.js

js checkflow.io collected 2026-10-04 10:28:44 UTC 5,085 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkcheck_flow_docs||=[]).push([[864],{7969(e,t,i){i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"api/authentication","title":"Authentication","description":"API endpoints for validating your CheckFlow API key.","source":"@site/docs/api/authentication.md","sourceDirName":"api","slug":"/api/authentication","permalink":"/docs/api/authentication","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedAt":1790543127000,"frontMatter":{"id":"authentication","title":"Authentication","sidebar_label":"Authentication","description":"API endpoints for validating your CheckFlow API key."},"sidebar":"docs","previous":{"title":"Overview","permalink":"/docs/api/overview"},"next":{"title":"Checklists","permalink":"/docs/api/checklists"}}');var s=i(4848),a=i(8453);const r={id:"authentication",title:"Authentication",sidebar_label:"Authentication",description:"API endpoints for validating your CheckFlow API key."},d=void 0,o={},l=[{value:"Validate API Key",id:"validate-api-key",level:2},{value:"Request Headers",id:"request-headers",level:3},{value:"Example Request",id:"example-request",level:3},{value:"Example Response",id:"example-response",level:3},{value:"Response Codes",id:"response-codes",level:3},{value:"Related Pages",id:"related-pages",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsxs)(t.p,{children:["This page documents the ",(0,s.jsx)(t.strong,{children:"legacy v1 and v2 API"}),", which remains available for existing integrations such as the Zapier app. New integrations should use the ",(0,s.jsx)(t.a,{href:"/docs/api-v3/overview",children:"CheckFlow API v3"})," \u2014 see ",(0,s.jsx)(t.a,{href:"/docs/api-v3/migrating-from-v2",children:"Migrating from v1 and v2"}),"."]})}),"\n",(0,s.jsx)(t.p,{children:"Use this endpoint to verify that your API key is valid before making other requests."}),"\n",(0,s.jsx)(t.hr,{}),"\n",(0,s.jsx)(t.h2,{id:"validate-api-key",children:"Validate API Key"}),"\n",(0,s.jsxs)(t.p,{children:["Validates the API key provided in the ",(0,s.jsx)(t.code,{children:"X-API-KEY"})," header and returns basic details about the associated team."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"GET /api/authentication/validate\n"})}),"\n",(0,s.jsx)(t.h3,{id:"request-headers",children:"Request Headers"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Header"}),(0,s.jsx)(t.th,{children:"Required"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"X-API-KEY"})}),(0,s.jsx)(t.td,{children:"Yes"}),(0,s.jsx)(t.td,{children:"Your API key"})]})})]}),"\n",(0,s.jsx)(t.h3,{id:"example-request",children:"Example Request"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"GET https://app.checkflow.io/api/authentication/validate\nX-API-KEY: your-api-key-here\n"})}),"\n",(0,s.jsx)(t.h3,{id:"example-response",children:"Example Response"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-json",children:'{\n  "isValid": true,\n  "teamId": 42,\n  "teamName": "Acme Corp"\n}\n'})}),"\n",(0,s.jsx)(t.h3,{id:"response-codes",children:"Response Codes"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Code"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"200"})}),(0,s.jsx)(t.td,{children:"API key is valid. Returns team details."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:(0,s.jsx)(t.code,{children:"401"})}),(0,s.jsx)(t.td,{children:"API key is missing or invalid."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"related-pages",children:"Related Pages"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"/docs/api/overview",children:"API Reference"})," \u2014 where the key comes from and how to send it."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"/docs/api/team",children:"Team"})," \u2014 the endpoint that tells you whose team the key belongs to."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453(e,t,i){i.d(t,{R:()=>r,x:()=>d});var n=i(6540);const s={},a=n.createContext(s);function r(e){const t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.