# /auth/service/{id} - Per-add-on entitlement check **GET /auth/service/{id}** Returns 200 only when the system holds an active grant (not revoked, not expired; `valid_until` null = perpetual) for the requested service id, 403 otherwise. The id may be the canonical catalog id or a legacy wire alias (the feeds still call `ng-blacklist` while the canonical id is `nsec-blacklist`). `?scope=` also matches grants narrowed to that application instance (e.g. `nethvoice1`); a system-wide grant (empty scope) covers every instance. Without `scope` only system-wide grants count. ## Servers - Collect API server (port 8081): https://collect.your-domain.com/api (Collect API server (port 8081)) ## Authentication methods - Basic auth ## Parameters ### Path parameters - **id** (string) Service id (canonical catalog id or legacy alias) ### Query parameters - **scope** (string) Application instance to check an instance-narrowed grant for ## Responses ### 200 The system holds an active grant for the service #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 401 Unauthorized - invalid or missing token #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 403 Valid subscription but the service is not enabled for this system #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) ### 500 Internal server error #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) [Powered by Bump.sh](https://bump.sh)