# GET /api/v1/verify

> GET /api/v1/verify renders the code you describe, rasterizes it, decodes it with a real decoder and compares the result with your input. It returns JSON describing what a scanner would actually see, including the contrast ratio and any warnings.

Source: https://useqr.app/docs/api/verify · No API key required · UseQR is free forever, MIT licensed.

---

## Parameters

| Name | Type | Required | Detail |
| --- | --- | --- | --- |
| `data` | string | yes | The payload to check. |
| `…style` | string | no | Every styling parameter from /v1/qr — colours, style, eye, ec, margin. |

## Example

```
curl "https://useqr.app/api/v1/verify?data=hello&color=cccccc"
```

## Notes

- This is the same loop the studio runs in your browser after every change.

## Errors

Every 4xx is RFC 9457 problem+json with an extra `fix` field containing a corrected call.

```json
{
  "type": "https://useqr.app/errors",
  "title": "Unscannable colour",
  "status": 400,
  "detail": "color=cccccc is 1.7:1 on white",
  "fix": "/api/v1/qr?data=hello&color=4d4d4d"
}
```
