HackGATE supports two access modes for each site. In open mode any authenticated researcher can connect. In restricted mode only email addresses on the allowlist can connect. Use the endpoints below to read and update the allowlist, and to toggle between the two modes.All four endpoints require a Bearer token in the Authorization header.
Switches a site between open access and restricted (allowlist-only) access.Set allowedHackerType to true to enforce the allowlist. Set it to false to allow any authenticated researcher to connect.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"HackGATE","colors":{"primary":"#7F56D9","light":"#9E77ED","dark":"#040404"},"logo":{"light":"https://mintcdn.com/hackrate/hULt5aeh9Cd0Exa-/images/Hackgatelogoblack.svg?fit=max\u0026auto=format\u0026n=hULt5aeh9Cd0Exa-\u0026q=85\u0026s=4af5823034f06615b687e1b8f3ceb20e","dark":"https://mintcdn.com/hackrate/hULt5aeh9Cd0Exa-/images/HackGATE%E2%84%A2logowhite.svg?fit=max\u0026auto=format\u0026n=hULt5aeh9Cd0Exa-\u0026q=85\u0026s=fb5c3ce47ed69e435dd4ec970a42ee76"},"favicon":"https://media.brand.dev/10d968d6-149e-4c29-bd6d-360cf1ba32c0.jpg","navbar":{"links":[{"href":"https://www.hckrt.com/Home/RequestADemo","label":"Talk to us"},{"href":"https://admin.hackgate.io","label":"Get started"}]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hackrate","hasAudioNarration":false,"actualSubdomain":"hackrate","customDomains":["docs.hackgate.io"],"gitSource":{"type":"github","owner":"hckrt","repo":"docs","deployBranch":"main","isPrivate":false,"contentDirectory":"","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a5b72f5d9479037c78772ed","collectionId":"37a467e3-49cf-48c0-94eb-753703a747c1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a5b72f5d9479037c78772ed"},"feedback":{"thumbs":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae95764f74cc9f20f5005c8:success","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":71},{"language":"default","tag":"Sites","count":33},{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"Analytics","count":15},{"language":"default","tag":"Projects","count":13},{"language":"default","tag":"HackGATE Sites","count":5},{"language":"default","tag":"Access Control","count":3},{"language":"default","tag":"Analytics \u0026 Monitoring","count":3},{"language":"default","tag":"Account \u0026 Org","count":3},{"language":"default","tag":"Get Started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"vite-origin","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api/sites/hackers","slug":"/api/sites/hackers","pageMetadata":{"title":"Manage the researcher allowlist for a site","description":"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.","href":"/api/sites/hackers"},"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: \"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\"\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={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,ResponseExample,ResponseField,Tab,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`HackGATE supports two access modes for each site. In open mode any authenticated researcher can connect. In restricted mode only email addresses on the allowlist can connect. Use the endpoints below to read and update the allowlist, and to toggle between the two modes.`}),`\n`,_jsxs(_components.p,{children:[`All four endpoints require a Bearer token in the `,_jsx(_components.code,{children:`Authorization`}),` header.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`List researchers`,id:`list-researchers`,\"data-child-heading-ids\":`[\"get-%2Fapi%2Fsites%2Fgethackers%2F\",\"request\",\"headers\",\"path-parameters\",\"response\",\"example\"]`,children:[_jsx(Heading,{level:`2`,id:`get-/api/sites/gethackers/`,children:`GET /api/sites/getHackers/`}),_jsx(_components.p,{children:`Returns all researchers currently on the allowlist for a site.`}),_jsx(Heading,{level:`3`,id:`request`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`GET https://api-admin.hackgate.io/api/sites/getHackers/{id}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(Heading,{level:`4`,id:`path-parameters`,children:`Path parameters`}),_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`The UUID of the site.`})}),_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),_jsx(_components.p,{children:`Returns an array of allowlist entries.`}),_jsx(ResponseField,{name:`[]`,type:`object[]`,id:`param`,children:_jsxs(Expandable,{title:`Allowlist entry fields`,defaultOpen:true,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-1`,children:_jsx(_components.p,{children:`Unique identifier for this allowlist entry. Use this value when removing the researcher.`})}),_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email`,children:_jsx(_components.p,{children:`Email address of the researcher.`})}),_jsx(ResponseField,{name:`siteId`,type:`string`,required:true,id:`param-site-id`,children:_jsx(_components.p,{children:`UUID of the site this entry belongs to.`})})]})}),_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alice@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bob@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})})]}),_jsxs(Tab,{title:`Add researcher`,id:`add-researcher`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Faddhacker\",\"request-2\",\"headers-2\",\"body\",\"response-2\",\"example-2\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/addhacker`,children:`POST /api/sites/addHacker`}),_jsx(_components.p,{children:`Adds a researcher’s email to the allowlist. Returns the full updated allowlist.`}),_jsx(Heading,{level:`3`,id:`request-2`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/addHacker`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-2`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-1`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body`,children:`Body`}),_jsx(ParamField,{body:`siteId`,type:`string`,required:true,id:`param-site-id-1`,children:_jsx(_components.p,{children:`The UUID of the site to add the researcher to.`})}),_jsx(ParamField,{body:`email`,type:`string`,required:true,id:`param-email-1`,children:_jsxs(_components.p,{children:[`The researcher’s email address. Returns `,_jsx(_components.code,{children:`400`}),` if this email is already on the allowlist.`]})}),_jsx(Heading,{level:`3`,id:`response-2`,children:`Response`}),_jsx(_components.p,{children:`Returns the complete updated allowlist after the addition.`}),_jsx(ResponseField,{name:`[]`,type:`object[]`,id:`param-1`,children:_jsxs(Expandable,{title:`Allowlist entry fields`,defaultOpen:true,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-2`,children:_jsx(_components.p,{children:`Unique identifier for this allowlist entry.`})}),_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email-2`,children:_jsx(_components.p,{children:`Email address of the researcher.`})}),_jsx(ResponseField,{name:`siteId`,type:`string`,required:true,id:`param-site-id-2`,children:_jsx(_components.p,{children:`UUID of the site.`})})]})}),_jsx(Heading,{level:`3`,id:`example-2`,children:`Example`}),_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`200`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alice@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`400`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Researcher is already on the allowlist.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`400`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]}),_jsxs(Tab,{title:`Remove researcher`,id:`remove-researcher`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Fremovehacker\",\"request-3\",\"headers-3\",\"body-2\",\"response-3\",\"example-3\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/removehacker`,children:`POST /api/sites/removeHacker`}),_jsxs(_components.p,{children:[`Removes a researcher from the allowlist. Use the `,_jsx(_components.code,{children:`id`}),` returned by `,_jsx(_components.code,{children:`getHackers`}),` to identify the entry.`]}),_jsx(Heading,{level:`3`,id:`request-3`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/removeHacker`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-3`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-2`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type-1`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body-2`,children:`Body`}),_jsx(ParamField,{body:`id`,type:`string`,required:true,id:`param-id-3`,children:_jsxs(_components.p,{children:[`The UUID of the allowlist entry to remove. Returned as `,_jsx(_components.code,{children:`id`}),` in the `,_jsx(_components.code,{children:`getHackers`}),` response.`]})}),_jsx(ParamField,{body:`siteId`,type:`string`,required:true,id:`param-site-id-3`,children:_jsx(_components.p,{children:`The UUID of the site.`})}),_jsx(ParamField,{body:`email`,type:`string`,required:true,id:`param-email-3`,children:_jsx(_components.p,{children:`The email address of the researcher being removed.`})}),_jsx(Heading,{level:`3`,id:`response-3`,children:`Response`}),_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`200`}),` on success. No body is returned.`]}),_jsx(Heading,{level:`3`,id:`example-3`,children:`Example`}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{}`})}),`\n`]})})})})]}),_jsxs(Tab,{title:`Toggle access mode`,id:`toggle-access-mode`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Fallowedhackertype\",\"request-4\",\"headers-4\",\"body-3\",\"response-4\",\"example-4\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/allowedhackertype`,children:`POST /api/sites/allowedHackerType`}),_jsx(_components.p,{children:`Switches a site between open access and restricted (allowlist-only) access.`}),_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`allowedHackerType`}),` to `,_jsx(_components.code,{children:`true`}),` to enforce the allowlist. Set it to `,_jsx(_components.code,{children:`false`}),` to allow any authenticated researcher to connect.`]}),_jsx(Heading,{level:`3`,id:`request-4`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/allowedHackerType`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-4`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-3`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type-2`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body-3`,children:`Body`}),_jsx(ParamField,{body:`id`,type:`string`,required:true,id:`param-id-4`,children:_jsx(_components.p,{children:`The UUID of the site to update.`})}),_jsx(ParamField,{body:`allowedHackerType`,type:`boolean`,required:true,id:`param-allowed-hacker-type`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` to restrict access to the allowlist only. `,_jsx(_components.code,{children:`false`}),` to allow any authenticated researcher.`]})}),_jsx(Heading,{level:`3`,id:`response-4`,children:`Response`}),_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`200`}),` on success. No body is returned.`]}),_jsx(Heading,{level:`3`,id:`example-4`,children:`Example`}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{}`})}),`\n`]})})})}),_jsx(Note,{children:_jsx(_components.p,{children:`Switching to allowlist-only mode takes effect immediately. Researchers not on the list are blocked at the proxy from that point forward.`})})]})]})]})}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":"Manage the researcher allowlist for a site","description":"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.","href":"/api/sites/hackers"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,RequestExample,ResponseExample,ResponseField,Tab,Tabs}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`HackGATE supports two access modes for each site. In open mode any authenticated researcher can connect. In restricted mode only email addresses on the allowlist can connect. Use the endpoints below to read and update the allowlist, and to toggle between the two modes.`}),`\n`,_jsxs(_components.p,{children:[`All four endpoints require a Bearer token in the `,_jsx(_components.code,{children:`Authorization`}),` header.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`List researchers`,id:`list-researchers`,\"data-child-heading-ids\":`[\"get-%2Fapi%2Fsites%2Fgethackers%2F\",\"request\",\"headers\",\"path-parameters\",\"response\",\"example\"]`,children:[_jsx(Heading,{level:`2`,id:`get-/api/sites/gethackers/`,children:`GET /api/sites/getHackers/`}),_jsx(_components.p,{children:`Returns all researchers currently on the allowlist for a site.`}),_jsx(Heading,{level:`3`,id:`request`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`GET https://api-admin.hackgate.io/api/sites/getHackers/{id}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(Heading,{level:`4`,id:`path-parameters`,children:`Path parameters`}),_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`The UUID of the site.`})}),_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),_jsx(_components.p,{children:`Returns an array of allowlist entries.`}),_jsx(ResponseField,{name:`[]`,type:`object[]`,id:`param`,children:_jsxs(Expandable,{title:`Allowlist entry fields`,defaultOpen:true,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-1`,children:_jsx(_components.p,{children:`Unique identifier for this allowlist entry. Use this value when removing the researcher.`})}),_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email`,children:_jsx(_components.p,{children:`Email address of the researcher.`})}),_jsx(ResponseField,{name:`siteId`,type:`string`,required:true,id:`param-site-id`,children:_jsx(_components.p,{children:`UUID of the site this entry belongs to.`})})]})}),_jsx(Heading,{level:`3`,id:`example`,children:`Example`}),_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api-admin.hackgate.io/api/sites/getHackers/a1b2c3d4-e5f6-7890-abcd-ef1234567890`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`})]}),`\n`]})})})}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alice@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bob@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})})})]}),_jsxs(Tab,{title:`Add researcher`,id:`add-researcher`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Faddhacker\",\"request-2\",\"headers-2\",\"body\",\"response-2\",\"example-2\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/addhacker`,children:`POST /api/sites/addHacker`}),_jsx(_components.p,{children:`Adds a researcher’s email to the allowlist. Returns the full updated allowlist.`}),_jsx(Heading,{level:`3`,id:`request-2`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/addHacker`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-2`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-1`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body`,children:`Body`}),_jsx(ParamField,{body:`siteId`,type:`string`,required:true,id:`param-site-id-1`,children:_jsx(_components.p,{children:`The UUID of the site to add the researcher to.`})}),_jsx(ParamField,{body:`email`,type:`string`,required:true,id:`param-email-1`,children:_jsxs(_components.p,{children:[`The researcher’s email address. Returns `,_jsx(_components.code,{children:`400`}),` if this email is already on the allowlist.`]})}),_jsx(Heading,{level:`3`,id:`response-2`,children:`Response`}),_jsx(_components.p,{children:`Returns the complete updated allowlist after the addition.`}),_jsx(ResponseField,{name:`[]`,type:`object[]`,id:`param-1`,children:_jsxs(Expandable,{title:`Allowlist entry fields`,defaultOpen:true,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-2`,children:_jsx(_components.p,{children:`Unique identifier for this allowlist entry.`})}),_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email-2`,children:_jsx(_components.p,{children:`Email address of the researcher.`})}),_jsx(ResponseField,{name:`siteId`,type:`string`,required:true,id:`param-site-id-2`,children:_jsx(_components.p,{children:`UUID of the site.`})})]})}),_jsx(Heading,{level:`3`,id:`example-2`,children:`Example`}),_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api-admin.hackgate.io/api/sites/addHacker`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"siteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"email\": \"alice@example.com\"}'`})]}),`\n`]})})})}),_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`200`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entry-uuid-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"alice@example.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"siteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`400`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Researcher is already on the allowlist.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`400`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})]}),_jsxs(Tab,{title:`Remove researcher`,id:`remove-researcher`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Fremovehacker\",\"request-3\",\"headers-3\",\"body-2\",\"response-3\",\"example-3\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/removehacker`,children:`POST /api/sites/removeHacker`}),_jsxs(_components.p,{children:[`Removes a researcher from the allowlist. Use the `,_jsx(_components.code,{children:`id`}),` returned by `,_jsx(_components.code,{children:`getHackers`}),` to identify the entry.`]}),_jsx(Heading,{level:`3`,id:`request-3`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/removeHacker`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-3`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-2`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type-1`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body-2`,children:`Body`}),_jsx(ParamField,{body:`id`,type:`string`,required:true,id:`param-id-3`,children:_jsxs(_components.p,{children:[`The UUID of the allowlist entry to remove. Returned as `,_jsx(_components.code,{children:`id`}),` in the `,_jsx(_components.code,{children:`getHackers`}),` response.`]})}),_jsx(ParamField,{body:`siteId`,type:`string`,required:true,id:`param-site-id-3`,children:_jsx(_components.p,{children:`The UUID of the site.`})}),_jsx(ParamField,{body:`email`,type:`string`,required:true,id:`param-email-3`,children:_jsx(_components.p,{children:`The email address of the researcher being removed.`})}),_jsx(Heading,{level:`3`,id:`response-3`,children:`Response`}),_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`200`}),` on success. No body is returned.`]}),_jsx(Heading,{level:`3`,id:`example-3`,children:`Example`}),_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api-admin.hackgate.io/api/sites/removeHacker`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"entry-uuid-1\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"siteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"email\": \"alice@example.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{}`})}),`\n`]})})})})]}),_jsxs(Tab,{title:`Toggle access mode`,id:`toggle-access-mode`,\"data-child-heading-ids\":`[\"post-%2Fapi%2Fsites%2Fallowedhackertype\",\"request-4\",\"headers-4\",\"body-3\",\"response-4\",\"example-4\"]`,children:[_jsx(Heading,{level:`2`,id:`post-/api/sites/allowedhackertype`,children:`POST /api/sites/allowedHackerType`}),_jsx(_components.p,{children:`Switches a site between open access and restricted (allowlist-only) access.`}),_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`allowedHackerType`}),` to `,_jsx(_components.code,{children:`true`}),` to enforce the allowlist. Set it to `,_jsx(_components.code,{children:`false`}),` to allow any authenticated researcher to connect.`]}),_jsx(Heading,{level:`3`,id:`request-4`,children:`Request`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST https://api-admin.hackgate.io/api/sites/allowedHackerType`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`4`,id:`headers-4`,children:`Headers`}),_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization-3`,children:_jsxs(_components.p,{children:[`Bearer token. Example: `,_jsx(_components.code,{children:`Bearer \u003ctoken>`})]})}),_jsx(ParamField,{header:`Content-Type`,type:`string`,required:true,id:`param-content-type-2`,children:_jsxs(_components.p,{children:[`Must be `,_jsx(_components.code,{children:`application/json`}),`.`]})}),_jsx(Heading,{level:`4`,id:`body-3`,children:`Body`}),_jsx(ParamField,{body:`id`,type:`string`,required:true,id:`param-id-4`,children:_jsx(_components.p,{children:`The UUID of the site to update.`})}),_jsx(ParamField,{body:`allowedHackerType`,type:`boolean`,required:true,id:`param-allowed-hacker-type`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` to restrict access to the allowlist only. `,_jsx(_components.code,{children:`false`}),` to allow any authenticated researcher.`]})}),_jsx(Heading,{level:`3`,id:`response-4`,children:`Response`}),_jsxs(_components.p,{children:[`Returns `,_jsx(_components.code,{children:`200`}),` on success. No body is returned.`]}),_jsx(Heading,{level:`3`,id:`example-4`,children:`Example`}),_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Enable allowlist-only access`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api-admin.hackgate.io/api/sites/allowedHackerType`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003ctoken>\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"allowedHackerType\": true}'`})]}),`\n`]})})})}),_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`1`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{}`})}),`\n`]})})})}),_jsx(Note,{children:_jsx(_components.p,{children:`Switching to allowlist-only mode takes effect immediately. Researchers not on the list are blocked at the proxy from that point forward.`})})]})]})]})}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":"Manage the researcher allowlist for a site","description":"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.","href":"/api/sites/hackers"}}}},"mdxExtracts":{"tableOfContents":[{"title":"GET /api/sites/getHackers/","slug":"get-/api/sites/gethackers/","depth":2,"children":[{"title":"Request","slug":"request","depth":3,"children":[],"tabId":"list-researchers"},{"title":"Headers","slug":"headers","depth":4,"children":[],"tabId":"list-researchers"},{"title":"Path parameters","slug":"path-parameters","depth":4,"children":[],"tabId":"list-researchers"},{"title":"Response","slug":"response","depth":3,"children":[],"tabId":"list-researchers"},{"title":"Example","slug":"example","depth":3,"children":[],"tabId":"list-researchers"}],"tabId":"list-researchers"},{"title":"POST /api/sites/addHacker","slug":"post-/api/sites/addhacker","depth":2,"children":[{"title":"Request","slug":"request-2","depth":3,"children":[],"tabId":"add-researcher"},{"title":"Headers","slug":"headers-2","depth":4,"children":[],"tabId":"add-researcher"},{"title":"Body","slug":"body","depth":4,"children":[],"tabId":"add-researcher"},{"title":"Response","slug":"response-2","depth":3,"children":[],"tabId":"add-researcher"},{"title":"Example","slug":"example-2","depth":3,"children":[],"tabId":"add-researcher"}],"tabId":"add-researcher"},{"title":"POST /api/sites/removeHacker","slug":"post-/api/sites/removehacker","depth":2,"children":[{"title":"Request","slug":"request-3","depth":3,"children":[],"tabId":"remove-researcher"},{"title":"Headers","slug":"headers-3","depth":4,"children":[],"tabId":"remove-researcher"},{"title":"Body","slug":"body-2","depth":4,"children":[],"tabId":"remove-researcher"},{"title":"Response","slug":"response-3","depth":3,"children":[],"tabId":"remove-researcher"},{"title":"Example","slug":"example-3","depth":3,"children":[],"tabId":"remove-researcher"}],"tabId":"remove-researcher"},{"title":"POST /api/sites/allowedHackerType","slug":"post-/api/sites/allowedhackertype","depth":2,"children":[{"title":"Request","slug":"request-4","depth":3,"children":[],"tabId":"toggle-access-mode"},{"title":"Headers","slug":"headers-4","depth":4,"children":[],"tabId":"toggle-access-mode"},{"title":"Body","slug":"body-3","depth":4,"children":[],"tabId":"toggle-access-mode"},{"title":"Response","slug":"response-4","depth":3,"children":[],"tabId":"toggle-access-mode"},{"title":"Example","slug":"example-4","depth":3,"children":[],"tabId":"toggle-access-mode"}],"tabId":"toggle-access-mode"}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"cURL","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"2\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api-admin.hackgate.io/api/sites/getHackers/a1b2c3d4-e5f6-7890-abcd-ef1234567890\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u0026#x3C;token>\"\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":[],"subdomain":"hackrate","siteName":"HackGATE","title":"Manage the researcher allowlist for a site - HackGATE","navMaps":{"firstHrefInVersion":{"v2":{"href":"/api/sites/hackers","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-05-13T15:49:04.930Z","originalFileLocation":"api/sites/hackers.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=\"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HackGATE\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/jpeg\" sizes=\"180x180\" href=\"https://media.brand.dev/10d968d6-149e-4c29-bd6d-360cf1ba32c0.jpg\">\u003clink data-mint-head rel=\"icon\" type=\"image/jpeg\" sizes=\"32x32\" href=\"https://media.brand.dev/10d968d6-149e-4c29-bd6d-360cf1ba32c0.jpg\">\u003clink data-mint-head rel=\"icon\" type=\"image/jpeg\" sizes=\"16x16\" href=\"https://media.brand.dev/10d968d6-149e-4c29-bd6d-360cf1ba32c0.jpg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/jpeg\" href=\"https://media.brand.dev/10d968d6-149e-4c29-bd6d-360cf1ba32c0.jpg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Manage the researcher allowlist for a site - HackGATE\">\u003cmeta data-mint-head property=\"og:description\" content=\"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HackGATE\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hackgate.io/api/sites/hackers\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hackrate.mintlify.app/_mintlify/api/og/v2?division=Sites\u0026amp;title=Manage+the+researcher+allowlist+for+a+site\u0026amp;description=List%2C+add%2C+and+remove+researchers+from+the+HackGATE+site+allowlist.+Control+which+email+addresses+can+access+your+test+environment.\u0026amp;theme=3cb4d6c85f5789dc7ccfa9b4\u0026amp;signature=bde9444909451ef13d5b7ada14ae0995d9795f06ce5638e3263e9594e23c54cd\">\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=\"Manage the researcher allowlist for a site - HackGATE\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hackrate.mintlify.app/_mintlify/api/og/v2?division=Sites\u0026amp;title=Manage+the+researcher+allowlist+for+a+site\u0026amp;description=List%2C+add%2C+and+remove+researchers+from+the+HackGATE+site+allowlist.+Control+which+email+addresses+can+access+your+test+environment.\u0026amp;theme=3cb4d6c85f5789dc7ccfa9b4\u0026amp;signature=bde9444909451ef13d5b7ada14ae0995d9795f06ce5638e3263e9594e23c54cd\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/hackrate/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HackGATE\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7F56D9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hackgate.io/api/sites/hackers\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/sites/hackers.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hackgate.io/#organization\",\"name\":\"HackGATE\",\"url\":\"https://docs.hackgate.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hackrate/hULt5aeh9Cd0Exa-/images/Hackgatelogoblack.svg?fit=max\u0026auto=format\u0026n=hULt5aeh9Cd0Exa-\u0026q=85\u0026s=4af5823034f06615b687e1b8f3ceb20e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hackgate.io#website\",\"name\":\"HackGATE\",\"url\":\"https://docs.hackgate.io\",\"publisher\":{\"@id\":\"https://docs.hackgate.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hackgate.io/api/sites/hackers#webpage\",\"url\":\"https://docs.hackgate.io/api/sites/hackers\",\"name\":\"Manage the researcher allowlist for a site\",\"description\":\"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\",\"dateModified\":\"2026-05-13T15:49:04.930Z\",\"isPartOf\":{\"@id\":\"https://docs.hackgate.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hackgate.io/api/sites/hackers#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hackgate.io/api/sites/hackers#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sites\",\"item\":\"https://docs.hackgate.io/api/sites/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manage the researcher allowlist for a site\",\"item\":\"https://docs.hackgate.io/api/sites/hackers\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hackgate.io/api/sites/hackers#article\",\"headline\":\"Manage the researcher allowlist for a site\",\"name\":\"Manage the researcher allowlist for a site\",\"description\":\"List, add, and remove researchers from the HackGATE site allowlist. Control which email addresses can access your test environment.\",\"url\":\"https://docs.hackgate.io/api/sites/hackers\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hackgate.io/api/sites/hackers#webpage\"},\"dateModified\":\"2026-05-13T15:49:04.930Z\",\"publisher\":{\"@id\":\"https://docs.hackgate.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hackgate.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HackGATE\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HackGATE","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","icon":"code","versions":[{"version":"v2","default":true,"tag":"Latest","groups":[{"group":"Overview","pages":[{"title":"HackGATE REST API — endpoints and conventions","href":"/api/overview"},{"title":"API authentication — tokens and API keys","href":"/api/authentication"}]},{"group":"Sites","pages":[{"title":"GET /api/sites — list HackGATE sites","href":"/api/sites/list"},{"title":"POST /api/sites — create a HackGATE site","href":"/api/sites/create"},{"title":"GET /api/sites/{id} — retrieve a single site","href":"/api/sites/get"},{"title":"GET /api/sites/enable/{id} — activate a site","href":"/api/sites/enable"},{"title":"GET /api/sites/disable/{id} — deactivate a site","description":"GET /api/sites/disable/{id} takes a HackGATE site offline. The proxied subdomain returns a default page until the site is re-enabled.","href":"/api/sites/disable"},{"title":"Manage the researcher allowlist for a site","href":"/api/sites/hackers"},{"title":"GET and POST /api/sites/blocklist — block rules","description":"Retrieve and update path-based block rules for a HackGATE site. Rules specify path prefixes, HTTP methods, and the status code to return.","href":"/api/sites/blocklist"},{"title":"Upload and retrieve the OpenAPI schema for a site","href":"/api/sites/openapi-schema"}]},{"group":"Projects","tag":"deprecated","pages":[{"title":"GET /api/projects — list and retrieve projects","href":"/api/projects/list"},{"title":"POST /api/projects — create a security project","href":"/api/projects/create"},{"title":"PUT /api/projects and project items — update records","href":"/api/projects/update"}]},{"group":"Analytics","pages":[{"title":"Traffic analytics API — requests, users, paths","href":"/api/analytics/traffic"},{"title":"WAF analytics API — attack types and rule events","href":"/api/analytics/waf"}]},{"group":"Account \u0026 Org","pages":[{"title":"GET /api/account/currentUser — user profile","href":"/api/account"},{"title":"GET /api/organization — organization details","href":"/api/organization"},{"title":"Billing API — get and update billing information","href":"/api/billing"}]},{"group":"Account","pages":[{"title":"Get apiaccountcurrentuser","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Account/currentUser","href":"/api-reference/account/get-apiaccountcurrentuser"},{"title":"Get apiaccountgetprofiledetails","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Account/getProfileDetails","href":"/api-reference/account/get-apiaccountgetprofiledetails"}]},{"group":"Analytics","pages":[{"title":"Get apianalyticsgetmostactiveusers","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getMostActiveUsers","href":"/api-reference/analytics/get-apianalyticsgetmostactiveusers"},{"title":"Get apianalyticsgettotalrequest","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getTotalRequest","href":"/api-reference/analytics/get-apianalyticsgettotalrequest"},{"title":"Get apianalyticsgetpathdiscovery","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getPathDiscovery","href":"/api-reference/analytics/get-apianalyticsgetpathdiscovery"},{"title":"Get apianalyticsgettraffictimeline","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getTrafficTimeline","href":"/api-reference/analytics/get-apianalyticsgettraffictimeline"},{"title":"Get apianalyticsgettraffictable","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getTrafficTable","href":"/api-reference/analytics/get-apianalyticsgettraffictable"},{"title":"Post apianalyticsgetsummarytraffictable","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Analytics/getSummaryTrafficTable","href":"/api-reference/analytics/post-apianalyticsgetsummarytraffictable"},{"title":"Post apianalyticsgetsummarytimeline","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Analytics/getSummaryTimeline","href":"/api-reference/analytics/post-apianalyticsgetsummarytimeline"},{"title":"Get apianalyticsgetwafmessages","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getWAFMessages","href":"/api-reference/analytics/get-apianalyticsgetwafmessages"},{"title":"Get apianalyticsgetwafattacktypes","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getWAFAttackTypes","href":"/api-reference/analytics/get-apianalyticsgetwafattacktypes"},{"title":"Get apianalyticsgetwafsummaryrulestimeline","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getWAFSummaryRulesTimeline","href":"/api-reference/analytics/get-apianalyticsgetwafsummaryrulestimeline"},{"title":"Get apianalyticsgetwafrulestimeline","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getWAFRulesTimeline","href":"/api-reference/analytics/get-apianalyticsgetwafrulestimeline"},{"title":"Get apianalyticsextractapiroutesfromdefinition","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/ExtractApiRoutesFromDefinition/{path}","href":"/api-reference/analytics/get-apianalyticsextractapiroutesfromdefinition"},{"title":"Get apianalyticsgetapicoverage","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Analytics/getAPICoverage","href":"/api-reference/analytics/get-apianalyticsgetapicoverage"}]},{"group":"Billing","pages":[{"title":"Get apibilling","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Billing","href":"/api-reference/billing/get-apibilling"},{"title":"Post apibilling","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Billing","href":"/api-reference/billing/post-apibilling"}]},{"group":"Organization","pages":[{"title":"Get apiorganization","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Organization","href":"/api-reference/organization/get-apiorganization"}]},{"group":"PIE","pages":[{"title":"Get apipiegetchecks","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/PIE/getChecks","href":"/api-reference/pie/get-apipiegetchecks"},{"title":"Post apipieruncheck","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/PIE/runCheck","href":"/api-reference/pie/post-apipieruncheck"}]},{"group":"Projects","pages":[{"title":"Get apiprojects","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Projects","href":"/api-reference/projects/get-apiprojects"},{"title":"Put apiprojects","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json put /api/Projects","href":"/api-reference/projects/put-apiprojects"},{"title":"Post apiprojects","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Projects","href":"/api-reference/projects/post-apiprojects"},{"title":"Get apiprojects 1","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Projects/{id}","href":"/api-reference/projects/get-apiprojects-1"},{"title":"Get apiprojectsgetprojectitems","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Projects/getProjectItems","href":"/api-reference/projects/get-apiprojectsgetprojectitems"},{"title":"Get apiprojectsgetprojectitem","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Projects/getProjectItem/{id}","href":"/api-reference/projects/get-apiprojectsgetprojectitem"},{"title":"Post apiprojectscreateprojectitem","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Projects/createProjectItem","href":"/api-reference/projects/post-apiprojectscreateprojectitem"},{"title":"Put apiprojectsupdateprojectitem","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json put /api/Projects/updateProjectItem","href":"/api-reference/projects/put-apiprojectsupdateprojectitem"}]},{"group":"Sites","pages":[{"title":"Get apisites","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites","href":"/api-reference/sites/get-apisites"},{"title":"Post apisites","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites","href":"/api-reference/sites/post-apisites"},{"title":"Get apisites 1","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/{id}","href":"/api-reference/sites/get-apisites-1"},{"title":"Get apisitesgetusagebymonth","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/getUsageByMonth/{id}","href":"/api-reference/sites/get-apisitesgetusagebymonth"},{"title":"Get apisitesenable","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/enable/{id}","href":"/api-reference/sites/get-apisitesenable"},{"title":"Get apisitesdisable","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/disable/{id}","href":"/api-reference/sites/get-apisitesdisable"},{"title":"Get apisitesdeploy","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/deploy/{id}","href":"/api-reference/sites/get-apisitesdeploy"},{"title":"Get apisitesgethackers","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/getHackers/{id}","href":"/api-reference/sites/get-apisitesgethackers"},{"title":"Get apisitesgetapidefinition","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/getAPIdefinition/{id}","href":"/api-reference/sites/get-apisitesgetapidefinition"},{"title":"Get apisitesgetlog","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/getLog/{id}","href":"/api-reference/sites/get-apisitesgetlog"},{"title":"Post apisitesaddhacker","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/addHacker","href":"/api-reference/sites/post-apisitesaddhacker"},{"title":"Post apisitesremovehacker","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/removeHacker","href":"/api-reference/sites/post-apisitesremovehacker"},{"title":"Get apisitesvalidatehacker","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/validateHacker","href":"/api-reference/sites/get-apisitesvalidatehacker"},{"title":"Post apisitesallowedhackertype","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/allowedHackerType","href":"/api-reference/sites/post-apisitesallowedhackertype"},{"title":"Post apisitessetratelimiting","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/setRateLimiting","href":"/api-reference/sites/post-apisitessetratelimiting"},{"title":"Post apisitesstart","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/start","href":"/api-reference/sites/post-apisitesstart"},{"title":"Post apisitesinstructions","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/instructions","href":"/api-reference/sites/post-apisitesinstructions"},{"title":"Post apisitescredentials","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/credentials","href":"/api-reference/sites/post-apisitescredentials"},{"title":"Post apisitesstop","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/stop","href":"/api-reference/sites/post-apisitesstop"},{"title":"Post apisitesuploadopenapischema","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/uploadOpenAPISchema","href":"/api-reference/sites/post-apisitesuploadopenapischema"},{"title":"Get apisitesapidefinitionversions","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/APIDefinitionVersions","href":"/api-reference/sites/get-apisitesapidefinitionversions"},{"title":"Get apisitesfilters","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/filters","href":"/api-reference/sites/get-apisitesfilters"},{"title":"Get apisites blocklist","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/{id}/blocklist","href":"/api-reference/sites/get-apisites-blocklist"},{"title":"Post apisitesblocklist","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json post /api/Sites/blocklist","href":"/api-reference/sites/post-apisitesblocklist"},{"title":"Get apisitestest","deprecated":null,"version":null,"openapi":"https://api-admin.hackgate.io/swagger/v2/swagger.json get /api/Sites/test","href":"/api-reference/sites/get-apisitestest"}]}]}]},{"tab":"Changelog","icon":"newspaper","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Manage the researcher allowlist for a site - HackGATE","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["2b790eda92"],"chunks":["ApiExamples-BNP-Fvr0.js","utils-0BK-9q6z.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","cloneDeep-izs3Hzxb.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js"]}