{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Cove","description":"Documentation for Cove, one workspace for your whole Roblox community.","colors":{"primary":"#ff6b2c","light":"#ff9054","dark":"#f04e23"},"logo":{"light":"https://cdn.coveapp.cc/docs/logo/cove-light.svg","dark":"https://cdn.coveapp.cc/docs/logo/cove-dark.svg","href":"https://coveapp.cc"},"favicon":"https://cdn.coveapp.cc/docs/favicon.png","appearance":{"default":"dark"},"background":{"color":{"dark":"#0B0B0E"}},"navbar":{"links":[{"href":"https://coveapp.cc/home","label":"Contact support"}],"primary":{"type":"button","label":"Join Cove","href":"https://coveapp.cc/join"}},"footer":{"socials":{"discord":"https://discord.gg/Aucxhuy3DU","website":"https://coveapp.cc"}},"icons":{"library":"tabler"},"styling":{"eyebrows":"section","latex":false},"contextual":{"options":[],"display":"header"},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Terms of Service","icon":"file-text","href":"https://coveapp.cc/terms"},{"anchor":"Privacy Policy","icon":"shield-lock","href":"https://coveapp.cc/privacy"},{"anchor":"Community","icon":"brand-discord","href":"https://discord.gg/Aucxhuy3DU"}]},"languages":[{"language":"en","href":""},{"language":"fr","href":"soon-fr"},{"language":"es","href":"soon-es"},{"language":"it","href":"soon-it"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cove-d56322b9","hasAudioNarration":false,"actualSubdomain":"cove-d56322b9","customDomains":["docs.coveapp.cc"],"gitSource":{"type":"github","owner":"prrent","repo":"cove-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aea82ca66edf84c351afc00","collectionId":"043ef048-512e-4fae-b9d4-5df53a08d0ca","liveDeploymentHistoryId":"6aea82ca66edf84c351afc00","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"}},"buildId":"6aea8d49d370df899a648535","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"API","count":22},{"language":"en","tag":"Dashboard","count":14},{"language":"en","tag":"Documentation","count":7},{"language":"en","tag":"Licensing","count":5},{"language":"en","tag":"Verification","count":5},{"language":"en","tag":"Getting started","count":4},{"language":"en","tag":"Workspace","count":4},{"language":"en","tag":"Ranking","count":3},{"language":"en","tag":"Careers","count":3},{"language":"en","tag":"Account","count":2}]},"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":[{"filePath":"style.css","content":".cove-accordion summary [style*=mask],.cove-accordion summary svg:not(:first-child){color:var(--c)!important;background-color:var(--c)!important}.cove-accordion summary>:first-child{color:inherit!important}.cove-accordion :has(>summary):nth-child(1){--c:#4dabf7}.cove-accordion :has(>summary):nth-child(2){--c:#fb923c}.cove-accordion :has(>summary):nth-child(3){--c:#f87171}.cove-accordion :has(>summary):nth-child(4){--c:#34d399}.cove-accordion :has(>summary):nth-child(5){--c:#a3e635}.cove-accordion :has(>summary):nth-child(6){--c:#f472b6}.cove-accordion :has(>summary):nth-child(7){--c:#1d9bf0}.cove-accordion :has(>summary):nth-child(8){--c:#facc15}.cove-accordion :has(>summary):nth-child(9){--c:#f472b6}.cove-accordion :has(>summary):nth-child(10){--c:#94a3b8}.cove-accordion :has(>summary):nth-child(11){--c:#000001}.cove-private summary [style*=mask],.cove-private summary svg:not(:first-child){color:var(--c)!important;background-color:var(--c)!important}.cove-private summary>:first-child{color:inherit!important}.cove-private :has(>summary):nth-child(1){--c:#f472b6}.cove-private :has(>summary):nth-child(2){--c:#726552}.cove-private :has(>summary):nth-child(3){--c:#2dd4bf}"}],"page":{"pagePath":"untitled-page","slug":"/untitled-page","pageMetadata":{"title":"Validate Roblox license","description":"Checks a Roblox license works for this person. Use it on player join or server start.","api":"GET https://api.coveapp.cc/v1/licenses/validate","sidebarTitle":"Validate Roblox license","href":"/untitled-page"},"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: \"Checks a Roblox license works for this person. Use it on player join or server start.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Expandable,Heading,Info,Note,ParamField,ResponseField,Table,Tip,Warning}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[`Needs the `,_jsx(_components.code,{children:`licensing:read`}),` permission on a store key.`]})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Call this when a player joins or when a server starts, so you always know the license is still good.`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Identify the person with one of `,_jsx(_components.code,{children:`robloxId`}),`, `,_jsx(_components.code,{children:`discordId`}),` or `,_jsx(_components.code,{children:`username`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`This only works on Roblox licenses. Calling it on any other kind of product returns a `,_jsx(_components.code,{children:`400`}),`. Use `,_jsx(_components.a,{href:`/api/licensing/check-license`,children:`Check ownership`}),` for those.`]})}),`\n`,_jsx(ParamField,{query:`product`,type:`string`,required:true,id:`param-product`,children:_jsx(_components.p,{children:`The product’s id or slug.`})}),`\n`,_jsx(ParamField,{query:`robloxId`,type:`string`,id:`param-roblox-id`,children:_jsx(_components.p,{children:`Their Roblox user id.`})}),`\n`,_jsx(ParamField,{query:`discordId`,type:`string`,id:`param-discord-id`,children:_jsx(_components.p,{children:`Their Discord id.`})}),`\n`,_jsx(ParamField,{query:`username`,type:`string`,id:`param-username`,children:_jsx(_components.p,{children:`Their Cove username.`})}),`\n`,`\n`,`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`data`,type:`object`,id:`param-data`,children:[_jsx(_components.p,{children:`The result of the check.`}),_jsxs(Expandable,{title:`properties`,defaultOpen:true,children:[_jsx(ResponseField,{name:`valid`,type:`boolean`,id:`param-valid`,children:_jsx(_components.p,{children:`Whether the license works for this person.`})}),_jsx(ResponseField,{name:`reason`,type:`string`,id:`param-reason`,children:_jsxs(_components.p,{children:[`Why it isn’t valid. Only there when `,_jsx(_components.code,{children:`valid`}),` is `,_jsx(_components.code,{children:`false`}),`. See the table below.`]})}),_jsxs(ResponseField,{name:`product`,type:`object`,id:`param-product-1`,children:[_jsx(_components.p,{children:`The product that was checked.`}),_jsxs(Expandable,{title:`product`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`The product’s id.`})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug`,children:_jsx(_components.p,{children:`The product’s slug.`})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title`,children:_jsx(_components.p,{children:`The product’s name.`})}),_jsx(ResponseField,{name:`kind`,type:`string`,id:`param-kind`,children:_jsxs(_components.p,{children:[`The kind of product, like `,_jsx(_components.code,{children:`license`}),`.`]})}),_jsx(ResponseField,{name:`live`,type:`boolean`,id:`param-live`,children:_jsx(_components.p,{children:`Whether the product is live.`})})]})]}),_jsxs(ResponseField,{name:`user`,type:`object`,id:`param-user`,children:[_jsx(_components.p,{children:`The person that was checked.`}),_jsxs(Expandable,{title:`user`,children:[_jsx(ResponseField,{name:`username`,type:`string`,id:`param-username-1`,children:_jsx(_components.p,{children:`Their Cove username.`})}),_jsx(ResponseField,{name:`roblox_id`,type:`string`,id:`param-roblox-id-1`,children:_jsx(_components.p,{children:`Their Roblox user id.`})}),_jsx(ResponseField,{name:`discord_id`,type:`string`,id:`param-discord-id-1`,children:_jsx(_components.p,{children:`Their Discord id.`})})]})]}),_jsxs(ResponseField,{name:`license`,type:`object`,id:`param-license`,children:[_jsx(_components.p,{children:`Their license for this product.`}),_jsxs(Expandable,{title:`license`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-1`,children:_jsx(_components.p,{children:`The license’s id.`})}),_jsx(ResponseField,{name:`plan`,type:`string`,id:`param-plan`,children:_jsxs(_components.p,{children:[`The plan it is on, like `,_jsx(_components.code,{children:`month`}),`.`]})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`The license’s status, like `,_jsx(_components.code,{children:`active`}),`.`]})}),_jsx(ResponseField,{name:`borrowed`,type:`boolean`,id:`param-borrowed`,children:_jsx(_components.p,{children:`Whether this person is borrowing it from someone else.`})}),_jsx(ResponseField,{name:`renews_at`,type:`string | null`,id:`param-renews-at`,children:_jsx(_components.p,{children:`When the subscription renews, as an ISO date.`})}),_jsx(ResponseField,{name:`ends_at`,type:`string | null`,id:`param-ends-at`,children:_jsx(_components.p,{children:`When the license ends, as an ISO date, if it does.`})}),_jsx(ResponseField,{name:`lent_until`,type:`string | null`,id:`param-lent-until`,children:_jsx(_components.p,{children:`When a lent license comes back, as an ISO date, if it is lent.`})})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`reasons-a-license-isn’t-valid`,children:`Reasons a license isn’t valid`}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`valid`}),` is `,_jsx(_components.code,{children:`false`}),`, `,_jsx(_components.code,{children:`reason`}),` is one of:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Reason`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`not_owned`})}),_jsx(_components.td,{children:`They don’t have this license.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lent_out`})}),_jsx(_components.td,{children:`They own it but lent it to someone else.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`paused_payment`})}),_jsx(_components.td,{children:`A subscription payment failed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`paused_dispute`})}),_jsx(_components.td,{children:`A card dispute is open.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:`The subscription ended.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`revoked`})}),_jsx(_components.td,{children:`The seller revoked it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`no_cove_account`})}),_jsx(_components.td,{children:`No Cove account with that ID.`})]})]})]})]})}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":"Validate Roblox license","description":"Checks a Roblox license works for this person. Use it on player join or server start.","api":"GET https://api.coveapp.cc/v1/licenses/validate","sidebarTitle":"Validate Roblox license","href":"/untitled-page"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Info,Note,ParamField,RequestExample,ResponseExample,ResponseField,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,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(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[`Needs the `,_jsx(_components.code,{children:`licensing:read`}),` permission on a store key.`]})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Call this when a player joins or when a server starts, so you always know the license is still good.`})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Identify the person with one of `,_jsx(_components.code,{children:`robloxId`}),`, `,_jsx(_components.code,{children:`discordId`}),` or `,_jsx(_components.code,{children:`username`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`This only works on Roblox licenses. Calling it on any other kind of product returns a `,_jsx(_components.code,{children:`400`}),`. Use `,_jsx(_components.a,{href:`/api/licensing/check-license`,children:`Check ownership`}),` for those.`]})}),`\n`,_jsx(ParamField,{query:`product`,type:`string`,required:true,id:`param-product`,children:_jsx(_components.p,{children:`The product’s id or slug.`})}),`\n`,_jsx(ParamField,{query:`robloxId`,type:`string`,id:`param-roblox-id`,children:_jsx(_components.p,{children:`Their Roblox user id.`})}),`\n`,_jsx(ParamField,{query:`discordId`,type:`string`,id:`param-discord-id`,children:_jsx(_components.p,{children:`Their Discord id.`})}),`\n`,_jsx(ParamField,{query:`username`,type:`string`,id:`param-username`,children:_jsx(_components.p,{children:`Their Cove username.`})}),`\n`,_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.coveapp.cc/v1/licenses/validate?product=pro-kit\u0026robloxId=100\"`}),_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 `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$COVE_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`26`,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:`26`,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:` \"data\"`}),_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:` \"valid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_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:` \"product\"`}),_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:`\"…\"`}),_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:` \"slug\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pro-kit\"`}),_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:`\"Pro Kit\"`}),_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:` \"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"license\"`}),_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:` \"live\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\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:` \"user\"`}),_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:` \"username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"prrent\"`}),_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:` \"roblox_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"100\"`}),_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:` \"discord_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"500\"`})]}),`\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:` \"license\"`}),_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:`\"…\"`}),_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:` \"plan\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"month\"`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_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:` \"borrowed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:` \"renews_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-12-01T…\"`}),_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:` \"ends_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_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:` \"lent_until\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\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(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(ResponseField,{name:`data`,type:`object`,id:`param-data`,children:[_jsx(_components.p,{children:`The result of the check.`}),_jsxs(Expandable,{title:`properties`,defaultOpen:true,children:[_jsx(ResponseField,{name:`valid`,type:`boolean`,id:`param-valid`,children:_jsx(_components.p,{children:`Whether the license works for this person.`})}),_jsx(ResponseField,{name:`reason`,type:`string`,id:`param-reason`,children:_jsxs(_components.p,{children:[`Why it isn’t valid. Only there when `,_jsx(_components.code,{children:`valid`}),` is `,_jsx(_components.code,{children:`false`}),`. See the table below.`]})}),_jsxs(ResponseField,{name:`product`,type:`object`,id:`param-product-1`,children:[_jsx(_components.p,{children:`The product that was checked.`}),_jsxs(Expandable,{title:`product`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`The product’s id.`})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug`,children:_jsx(_components.p,{children:`The product’s slug.`})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title`,children:_jsx(_components.p,{children:`The product’s name.`})}),_jsx(ResponseField,{name:`kind`,type:`string`,id:`param-kind`,children:_jsxs(_components.p,{children:[`The kind of product, like `,_jsx(_components.code,{children:`license`}),`.`]})}),_jsx(ResponseField,{name:`live`,type:`boolean`,id:`param-live`,children:_jsx(_components.p,{children:`Whether the product is live.`})})]})]}),_jsxs(ResponseField,{name:`user`,type:`object`,id:`param-user`,children:[_jsx(_components.p,{children:`The person that was checked.`}),_jsxs(Expandable,{title:`user`,children:[_jsx(ResponseField,{name:`username`,type:`string`,id:`param-username-1`,children:_jsx(_components.p,{children:`Their Cove username.`})}),_jsx(ResponseField,{name:`roblox_id`,type:`string`,id:`param-roblox-id-1`,children:_jsx(_components.p,{children:`Their Roblox user id.`})}),_jsx(ResponseField,{name:`discord_id`,type:`string`,id:`param-discord-id-1`,children:_jsx(_components.p,{children:`Their Discord id.`})})]})]}),_jsxs(ResponseField,{name:`license`,type:`object`,id:`param-license`,children:[_jsx(_components.p,{children:`Their license for this product.`}),_jsxs(Expandable,{title:`license`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-1`,children:_jsx(_components.p,{children:`The license’s id.`})}),_jsx(ResponseField,{name:`plan`,type:`string`,id:`param-plan`,children:_jsxs(_components.p,{children:[`The plan it is on, like `,_jsx(_components.code,{children:`month`}),`.`]})}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`The license’s status, like `,_jsx(_components.code,{children:`active`}),`.`]})}),_jsx(ResponseField,{name:`borrowed`,type:`boolean`,id:`param-borrowed`,children:_jsx(_components.p,{children:`Whether this person is borrowing it from someone else.`})}),_jsx(ResponseField,{name:`renews_at`,type:`string | null`,id:`param-renews-at`,children:_jsx(_components.p,{children:`When the subscription renews, as an ISO date.`})}),_jsx(ResponseField,{name:`ends_at`,type:`string | null`,id:`param-ends-at`,children:_jsx(_components.p,{children:`When the license ends, as an ISO date, if it does.`})}),_jsx(ResponseField,{name:`lent_until`,type:`string | null`,id:`param-lent-until`,children:_jsx(_components.p,{children:`When a lent license comes back, as an ISO date, if it is lent.`})})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`reasons-a-license-isn’t-valid`,children:`Reasons a license isn’t valid`}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`valid`}),` is `,_jsx(_components.code,{children:`false`}),`, `,_jsx(_components.code,{children:`reason`}),` is one of:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Reason`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`not_owned`})}),_jsx(_components.td,{children:`They don’t have this license.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lent_out`})}),_jsx(_components.td,{children:`They own it but lent it to someone else.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`paused_payment`})}),_jsx(_components.td,{children:`A subscription payment failed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`paused_dispute`})}),_jsx(_components.td,{children:`A card dispute is open.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ended`})}),_jsx(_components.td,{children:`The subscription ended.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`revoked`})}),_jsx(_components.td,{children:`The seller revoked it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`no_cove_account`})}),_jsx(_components.td,{children:`No Cove account with that ID.`})]})]})]})]})}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":"Validate Roblox license","description":"Checks a Roblox license works for this person. Use it on player join or server start.","api":"GET https://api.coveapp.cc/v1/licenses/validate","sidebarTitle":"Validate Roblox license","href":"/untitled-page"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Reasons a license isn’t valid","slug":"reasons-a-license-isn’t-valid","depth":2,"children":[]}],"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.coveapp.cc/v1/licenses/validate?product=pro-kit\u0026#x26;robloxId=100\"\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 \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$COVE_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"200","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=\"json\">\u003ccode language=\"json\" numberOfLines=\"26\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"valid\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"product\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"…\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"slug\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pro-kit\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"title\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Pro Kit\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"kind\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"license\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"live\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"user\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"username\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"prrent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"roblox_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"100\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"discord_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"500\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"license\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"…\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"plan\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"month\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"active\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"borrowed\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"renews_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-12-01T…\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ends_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"lent_until\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Validate Roblox license","path":"/v1/licenses/validate","servers":[{"url":"https://api.coveapp.cc"}],"method":"get","request":{"security":[],"parameters":{"query":{"product":{"schema":[{"type":"string","description":"The product’s id or slug.","required":true}]},"robloxId":{"schema":[{"type":"string","description":"Their Roblox user id."}]},"discordId":{"schema":[{"type":"string","description":"Their Discord id."}]},"username":{"schema":[{"type":"string","description":"Their Cove username."}]}},"header":{},"cookie":{},"path":{}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"data":[{"type":"object","properties":{"valid":[{"type":"boolean","description":"Whether the license works for this person."}],"reason":[{"type":"string","description":"Why it isn’t valid. Only there when `valid` is `false` . See the table below."}],"product":[{"type":"object","properties":{"id":[{"type":"string","description":"The product’s id."}],"slug":[{"type":"string","description":"The product’s slug."}],"title":[{"type":"string","description":"The product’s name."}],"kind":[{"type":"string","description":"The kind of product, like `license` ."}],"live":[{"type":"boolean","description":"Whether the product is live."}]},"description":"The product that was checked."}],"user":[{"type":"object","properties":{"username":[{"type":"string","description":"Their Cove username."}],"roblox_id":[{"type":"string","description":"Their Roblox user id."}],"discord_id":[{"type":"string","description":"Their Discord id."}]},"description":"The person that was checked."}],"license":[{"type":"object","properties":{"id":[{"type":"string","description":"The license’s id."}],"plan":[{"type":"string","description":"The plan it is on, like `month` ."}],"status":[{"type":"string","description":"The license’s status, like `active` ."}],"borrowed":[{"type":"boolean","description":"Whether this person is borrowing it from someone else."}],"renews_at":[{"type":"object","properties":{},"description":"When the subscription renews, as an ISO date."}],"ends_at":[{"type":"object","properties":{},"description":"When the license ends, as an ISO date, if it does."}],"lent_until":[{"type":"object","properties":{},"description":"When a lent license comes back, as an ISO date, if it is lent."}]},"description":"Their license for this product."}]},"description":"The result of the check."}]}}],"examples":{"example":{"value":{"data":{"valid":true,"reason":"\u003cstring>","product":{"id":"\u003cstring>","slug":"\u003cstring>","title":"\u003cstring>","kind":"\u003cstring>","live":true},"user":{"username":"\u003cstring>","roblox_id":"\u003cstring>","discord_id":"\u003cstring>"},"license":{"id":"\u003cstring>","plan":"\u003cstring>","status":"\u003cstring>","borrowed":true,"renews_at":{},"ends_at":{},"lent_until":{}}}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"cove-d56322b9","siteName":"Cove","title":"Validate Roblox license - Cove","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/untitled-page","matchLevel":0},"fr":{"href":"/soon-fr","matchLevel":3},"es":{"href":"/soon-es","matchLevel":3},"it":{"href":"/soon-it","matchLevel":3}}},"lastModified":"2026-11-04T00:56:58.304Z","gitLastModified":"2026-11-04T00:56:40.000Z","originalFileLocation":"untitled-page.mdx","locale":"en"},"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=\"dark\"}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=\"Checks a Roblox license works for this person. Use it on player join or server start.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cove\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://cdn.coveapp.cc/docs/favicon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://cdn.coveapp.cc/docs/favicon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://cdn.coveapp.cc/docs/favicon.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://cdn.coveapp.cc/docs/favicon.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Validate Roblox license - Cove\">\u003cmeta data-mint-head property=\"og:description\" content=\"Checks a Roblox license works for this person. Use it on player join or server start.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cove\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.coveapp.cc/untitled-page\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cove-d56322b9.mintlify.app/_mintlify/api/og/v2?division=Licensing\u0026amp;title=Validate+Roblox+license\u0026amp;description=Checks+a+Roblox+license+works+for+this+person.+Use+it+on+player+join+or+server+start.\u0026amp;theme=29b4e5ac253cb5039cc58875\u0026amp;signature=37075c06177148bd31cc56a8fef622d4d5b9dd48f9e8c28a5472da9fb3f15078\">\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=\"Validate Roblox license - Cove\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Checks a Roblox license works for this person. Use it on player join or server start.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cove-d56322b9.mintlify.app/_mintlify/api/og/v2?division=Licensing\u0026amp;title=Validate+Roblox+license\u0026amp;description=Checks+a+Roblox+license+works+for+this+person.+Use+it+on+player+join+or+server+start.\u0026amp;theme=29b4e5ac253cb5039cc58875\u0026amp;signature=37075c06177148bd31cc56a8fef622d4d5b9dd48f9e8c28a5472da9fb3f15078\">\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/cove-d56322b9/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cove\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6b2c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.coveapp.cc/untitled-page\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/untitled-page.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.coveapp.cc/#organization\",\"name\":\"Cove\",\"url\":\"https://docs.coveapp.cc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://cdn.coveapp.cc/docs/logo/cove-light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.coveapp.cc#website\",\"name\":\"Cove\",\"url\":\"https://docs.coveapp.cc\",\"publisher\":{\"@id\":\"https://docs.coveapp.cc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.coveapp.cc/untitled-page#webpage\",\"url\":\"https://docs.coveapp.cc/untitled-page\",\"name\":\"Validate Roblox license\",\"description\":\"Checks a Roblox license works for this person. Use it on player join or server start.\",\"dateModified\":\"2026-11-04T00:56:40.000Z\",\"isPartOf\":{\"@id\":\"https://docs.coveapp.cc#website\"},\"breadcrumb\":{\"@id\":\"https://docs.coveapp.cc/untitled-page#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.coveapp.cc/untitled-page#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Licensing\",\"item\":\"https://docs.coveapp.cc/api/licensing/list-products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validate Roblox license\",\"item\":\"https://docs.coveapp.cc/untitled-page\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.coveapp.cc/untitled-page#apireference\",\"headline\":\"Validate Roblox license\",\"name\":\"Validate Roblox license\",\"description\":\"Checks a Roblox license works for this person. Use it on player join or server start.\",\"url\":\"https://docs.coveapp.cc/untitled-page\",\"mainEntityOfPage\":{\"@id\":\"https://docs.coveapp.cc/untitled-page#webpage\"},\"dateModified\":\"2026-11-04T00:56:40.000Z\",\"publisher\":{\"@id\":\"https://docs.coveapp.cc/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.coveapp.cc#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cove\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cove","nav":{"global":{"anchors":[{"anchor":"Terms of Service","icon":"file-text","href":"https://coveapp.cc/terms"},{"anchor":"Privacy Policy","icon":"shield-lock","href":"https://coveapp.cc/privacy"},{"anchor":"Community","icon":"brand-discord","href":"https://discord.gg/Aucxhuy3DU"}]},"languages":[{"language":"en","tabs":[{"tab":"Documentation","icon":"book","pages":[{"title":"Documentation","href":""}]},{"tab":"Dashboard","icon":"layout-dashboard","pages":[{"title":"Dashboard","href":"/quickstart"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"API","icon":"code","groups":[{"group":"Getting started","pages":[{"title":"Getting started","sidebarTitle":"Getting started","href":"/api/getting-started"},{"title":"Permissions","sidebarTitle":"Permissions","href":"/api/permissions"},{"title":"Limits","sidebarTitle":"Limits","href":"/api/limits"},{"title":"Errors","sidebarTitle":"Errors","href":"/api/errors"}]},{"group":"Your key","pages":[{"title":"Get your key","api":"GET https://api.coveapp.cc/v1/me","sidebarTitle":"Get your key","href":"/api/key/get-key"}]},{"group":"Workspace","pages":[{"title":"Get workspace","api":"GET https://api.coveapp.cc/v1/workspace","sidebarTitle":"Get Workspace","href":"/api/workspace/get-workspace"},{"title":"List departments","api":"GET https://api.coveapp.cc/v1/departments","sidebarTitle":"List departments","href":"/api/workspace/list-departments"}]},{"group":"Members","pages":[{"title":"List members","api":"GET https://api.coveapp.cc/v1/members","sidebarTitle":"List members","href":"/api/members/list-members"},{"title":"Get member","api":"GET https://api.coveapp.cc/v1/members/{robloxId}","sidebarTitle":"Get member","href":"/api/members/get-member"}]},{"group":"Verification","pages":[{"title":"Get Discord from Roblox","api":"GET https://api.coveapp.cc/v1/verification/roblox/{robloxId}","sidebarTitle":"Get Discord from Roblox","href":"/api/verification/get-by-roblox"},{"title":"Get Roblox from Discord","api":"GET https://api.coveapp.cc/v1/verification/discord/{discordId}","sidebarTitle":"Get Roblox from Discord","href":"/api/verification/get-by-discord"}]},{"group":"Activity","pages":[{"title":"Get leaderboard","api":"GET https://api.coveapp.cc/v1/activity/leaderboard","sidebarTitle":"Get leaderboard","href":"/api/activity/get-leaderboard"},{"title":"Get member activity","api":"GET https://api.coveapp.cc/v1/activity/members/{robloxId}","sidebarTitle":"Get member activity","href":"/api/activity/get-member-activity"}]},{"group":"Ranking","pages":[{"title":"Set rank","api":"POST https://api.coveapp.cc/v1/ranking/set","sidebarTitle":"Set rank","href":"/api/ranking/set-rank"},{"title":"Promote member","api":"POST https://api.coveapp.cc/v1/ranking/promote","sidebarTitle":"Promote Member","href":"/api/ranking/promote"},{"title":"Demote member","api":"POST https://api.coveapp.cc/v1/ranking/demote","sidebarTitle":"Demote member","href":"/api/ranking/demote"}]},{"group":"Audit log","pages":[{"title":"List audit log","api":"GET https://api.coveapp.cc/v1/audit","sidebarTitle":"List audit log","href":"/api/audit/list-audit-log"}]},{"group":"Licensing","pages":[{"title":"List products","description":"Your store's live products.","api":"GET https://api.coveapp.cc/v1/licenses/products","sidebarTitle":"List products","href":"/api/licensing/list-products"},{"title":"Validate Roblox license","api":"GET https://api.coveapp.cc/v1/licenses/validate","sidebarTitle":"Validate Roblox license","href":"/untitled-page"},{"title":"Check ownership","description":"Does this person own the product? Refunded purchases don't count.","api":"GET https://api.coveapp.cc/v1/licenses/check","sidebarTitle":"Check ownership","href":"/api/licensing/check-license"},{"title":"Verify license key","api":"POST https://api.coveapp.cc/v1/licenses/verify","sidebarTitle":"Verify license key","href":"/api/licensing/verify-license"},{"title":"List product owners","api":"GET https://api.coveapp.cc/v1/licenses/products/{product}/owners","sidebarTitle":"List product owners","href":"/api/licensing/list-owners"}]}]}]},{"language":"fr","pages":[{"title":"fr","href":"/soon-fr"}]},{"language":"es","pages":[{"title":"es","href":"/soon-es"}]},{"language":"it","pages":[{"title":"it","href":"/soon-it"}]}]},"basePath":"","title":"Validate Roblox license - Cove","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","b0f84f53ff","2b790eda92"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Buji1S4J.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js"]}