# Get a security badge > An SVG badge with the most recent website-security grade for the domain, as produced by https://vigilbase.com/tools/website-security; a question mark when th... Source: https://docs.vigilbase.com/tools/developers/api-reference/badges/get-security-badge `GET https://api.vigilbase.com/tools/v1/badge/{domain}` An SVG badge with the most recent website-security grade for the domain, as produced by https://vigilbase.com/tools/website-security; a question mark when there is none. Cached 24 hours for a grade, 1 hour for a question mark. Errors are plain text: 400 `Invalid domain` for anything but a bare domain name, 429 after 60 badges a minute from one client. ## Authorizations None: the endpoint is public. ## Path parameters - `domain` (string, required): Bare domain name. Letter case, a leading `www.` and a trailing dot are ignored; a scheme, port or path is refused. Min length 3, max length 255. ## Query parameters - `style` (string): Badge size. One of `default`, `compact`, `mini`. ## Responses ### 200 (image/svg+xml) The SVG badge. `X-Vigilbase-Grade` names the grade shown. ### default (application/problem+json) Problem details (RFC 9457). - `type` (string, required) - `title` (string, required) - `status` (integer, required): Minimum 400, maximum 599. - `detail` (string, required) - `instance` (string) - `code` (string, required): One of `bad_request`, `validation_failed`, `idempotency_key_invalid`, `unauthorized`, `invalid_api_key`, `api_key_revoked`, `api_key_expired`, `forbidden`, `step_up_required`, `staff_only`, `read_only_key`, `not_for_api_keys`, `insufficient_scope`, `not_found`, `method_not_allowed`, `conflict`, `idempotency_in_progress`, `gone`, `length_required`, `precondition_failed`, `payload_too_large`, `unsupported_media_type`, `unprocessable_entity`, `idempotency_key_reused`, `rate_limit_exceeded`, `internal_error`, `upstream_unavailable`, `service_unavailable`. - `requestId` (string, required) - `docs` (string) - `errors` (object[]) - `pointer` (string, required) - `message` (string, required) - `retryAfterSeconds` (integer): Minimum 0, maximum 9007199254740991. ## Example request ```bash curl --request GET \ --url 'https://api.vigilbase.com/tools/v1/badge/%3Cdomain%3E' ``` With the Vigilbase CLI: ```bash vigilbase badge example.com ``` ## Example response (default) ```json { "type": "", "title": "", "status": 123, "detail": "", "instance": "", "code": "bad_request", "requestId": "", "docs": "", "errors": [ { "pointer": "", "message": "" } ], "retryAfterSeconds": 123 } ```