# SQR ## Docs - [Create API key](https://grailx.mintlify.app/api-reference/api-keys/create-api-key.md): Generate a new API key. Requires Supabase JWT authentication (API keys cannot create other keys). - [List API keys](https://grailx.mintlify.app/api-reference/api-keys/list-api-keys.md): List all API keys for the authenticated user. Requires Supabase JWT. - [Revoke API key](https://grailx.mintlify.app/api-reference/api-keys/revoke-api-key.md): Permanently disable an API key. Requires Supabase JWT. - [Health check](https://grailx.mintlify.app/api-reference/health/health-check.md): Returns server status, database connectivity, and component health. - [Claim NFT](https://grailx.mintlify.app/api-reference/nft/claim-nft.md): Transfer a minted NFT to a wallet address. The record must have status `minted`. - [Mint NFT](https://grailx.mintlify.app/api-reference/nft/mint-nft.md): Mint an ERC-721 NFT for a record on Ethereum Sepolia. The server wallet pays gas and receives the token initially. The record must have status `unclaimed`. - [Adopt record](https://grailx.mintlify.app/api-reference/records/adopt-record.md): Claim ownership of an unowned record. The record is assigned to the authenticated user. - [Create record](https://grailx.mintlify.app/api-reference/records/create-record.md): Create a new digital twin record with image upload. The image is automatically watermarked with a unique ID. Supports both multipart form upload and JSON with base64 image. - [Get record](https://grailx.mintlify.app/api-reference/records/get-record.md): Retrieve a single record by its watermark ID. This endpoint is public. - [List records](https://grailx.mintlify.app/api-reference/records/list-records.md): List records for the authenticated user with pagination and filtering. - [Record a scan](https://grailx.mintlify.app/api-reference/records/record-a-scan.md): Increment the scan count for a record and log scan history. This endpoint is public — it is called when a product label is scanned. - [Sync records](https://grailx.mintlify.app/api-reference/records/sync-records.md): Incremental sync — returns records updated after the given timestamp. Useful for mobile apps and offline-first clients. - [Update record](https://grailx.mintlify.app/api-reference/records/update-record.md): Merge new metadata into an existing record or update its description. - [Get template](https://grailx.mintlify.app/api-reference/templates/get-template.md): Returns a single template by ID with its full field configuration. - [List templates](https://grailx.mintlify.app/api-reference/templates/list-templates.md): Returns all available record templates with their field definitions. - [Embed watermark](https://grailx.mintlify.app/api-reference/watermarking/embed-watermark.md): Embed an invisible watermark message into an image. The message can be up to 5 characters. Returns the watermarked image as base64. - [Scan watermark](https://grailx.mintlify.app/api-reference/watermarking/scan-watermark.md): Scan an image for embedded watermarks using manual corner selection. - [Authentication](https://grailx.mintlify.app/getting-started/authentication.md): How to authenticate with the SQR API using API keys or Supabase JWTs. - [Errors](https://grailx.mintlify.app/getting-started/errors.md): How SQR API errors are structured and what status codes to expect. - [Rate Limits](https://grailx.mintlify.app/getting-started/rate-limits.md): Request rate limits for the SQR API. - [CLI Tool](https://grailx.mintlify.app/guides/cli.md): Manage SQR records from the terminal. - [NFT Minting](https://grailx.mintlify.app/guides/nft-minting.md): Anchor product records on-chain with ERC-721 tokens. - [Watermarking](https://grailx.mintlify.app/guides/watermarking.md): How invisible watermarks work in SQR — embedding, scanning, and the full lifecycle. - [Introduction](https://grailx.mintlify.app/index.md): Invisible watermarks for product authentication, supply chain traceability, and anti-counterfeiting. - [Quickstart](https://grailx.mintlify.app/quickstart.md): Create your first watermarked record in under a minute. ## OpenAPI Specs - [openapi](https://grailx.mintlify.app/openapi.json) ## Optional - [Dashboard](https://yys-sqr-render-bsbe.onrender.com/dashboard)