# API Reference

URL: https://zerodev.ca/docs/kora/extensions/core/api-reference

> The validation endpoints and the management API for licenses, products, policies, customers, addons, whitelists, access rules and logs.



Your product only needs `POST /api/v1/licenses/validate`, which is public, and `GET /api/v1/public-key` to check signatures. `POST /api/v1/licenses/activate` and `POST /api/v1/licenses/deactivate` manage device seats with the license key alone. See [Checking a Key](/docs/kora/extensions/core#checking-a-key).

Everything else manages your data and needs an API token from **API Tokens** in the dashboard, sent as `Authorization: Bearer <token>`. Set `host` in the playground to your own API address.

<APIPage
  document="core"
  showTitle="false"
  operations="[
  { path: &#x22;/v1/licenses/validate&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/licenses/activate&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/licenses/deactivate&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/public-key&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/licenses&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/licenses&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/licenses/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/licenses/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/licenses/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/licenses/{id}/file&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/licenses/whitelists&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/licenses/whitelists&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/licenses/whitelists/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/licenses/whitelists/reset&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/products&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/products&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/products/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/products/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/products/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/customers&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/customers&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/customers/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/customers/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/customers/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/customers/{id}/merge&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/policies&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/policies&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/policies/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/policies/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/policies/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/addons&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/addons&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/addons/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/addons/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/addons/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/whitelists/groups&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/whitelists/groups&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/whitelists/groups/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/whitelists/groups/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/whitelists/groups/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/whitelists/attach&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/whitelists/detach&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/rules&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/rules&#x22;, method: &#x22;post&#x22; },
  { path: &#x22;/v1/rules/{id}&#x22;, method: &#x22;get&#x22; },
  { path: &#x22;/v1/rules/{id}&#x22;, method: &#x22;patch&#x22; },
  { path: &#x22;/v1/rules/{id}&#x22;, method: &#x22;delete&#x22; },
  { path: &#x22;/v1/validations&#x22;, method: &#x22;get&#x22; }
]"
/>
