# Kennmarq.com > Kennmarq.com marks AI-generated images, video and audio for the EU AI Act (Article 50) and California's AI Transparency Act (SB 942, as amended by SB 1000) in one API call: an invisible watermark plus signed, time-stamped C2PA Content Credentials, read back from the finished file before it is returned. Every feature is free up to 1,000 marks a month. Run by Neuramare in Baar, Switzerland; customer data is kept in AWS Zurich. kennmarq.com is the only domain. ## How to add it to an app - Sign up at https://kennmarq.com/signup, confirm the email, and create an API key in the dashboard. Keep the key on the server, in the `KENNMARQ_API_KEY` environment variable; never ship it in a browser or mobile app. - Mark each generated file with `POST https://api.kennmarq.com/v1/mark` (multipart form data) and keep only the marked file. The response body is the marked file; the `X-Mark-Id` and `X-Watermark-Id` headers identify it. - Send `provider` (your legal name), `app_name` and `app_version` (your AI system) and `source` (`created`, `composite` or `edited`): the mark then carries all five items of California's latent disclosure. - Send `markets=eu,us-ca` (or `eu`, `us-ca`, `us-wa`, `us-ut`, `us`): a call missing what those laws need is refused before anything is counted, and the mark gets a receipt at `GET /v1/marks/{id}/receipt`. - Images: PNG, JPEG or WebP, up to 4 MB in the request or 25 MB through `POST /v1/uploads`. Songs: MP3, WAV or M4A, up to 15 minutes. Clips: MP4 up to 4,500 frames at up to 1920x1080, marked as a job: the call answers 202, then `GET /v1/marks/{id}` returns the marked clip. - Example: ``` curl https://api.kennmarq.com/v1/mark \ -H "Authorization: Bearer $KENNMARQ_API_KEY" \ -F file=@image.png \ -F source=created \ -F provider="Acme Inc." \ -F app_name="Acme Studio" -F app_version="2.1" \ -F markets=eu,us-ca \ -o image.marked.png ``` ## Docs - [Quickstart](https://kennmarq.com/docs): a free key and your first marked image in five minutes. - [POST /v1/mark](https://kennmarq.com/docs/api/mark): every option, the limits, songs and clips, and the errors. - [GET /v1/marks/{id}](https://kennmarq.com/docs/api/marks): a mark's state, a clip's result, and receipts. - [POST /v1/uploads](https://kennmarq.com/docs/api/uploads): files over 4 MB. - [Authentication](https://kennmarq.com/docs/authentication) and [keys, scopes and environments](https://kennmarq.com/docs/keys). - [Errors](https://kennmarq.com/docs/errors) and [rate limits and quotas](https://kennmarq.com/docs/rate-limits). - [Webhooks](https://kennmarq.com/docs/webhooks): `mark.completed`, `mark.failed` and `check.blocked`, signed. - [OpenAPI 3.1 spec](https://api.kennmarq.com/v1/openapi.json): the whole API, machine-readable. ## Compliance guides - [EU AI Act, Article 50](https://kennmarq.com/docs/laws/eu-ai-act): who is covered, the 2 December 2026 deadline, the Code of Practice's two marking layers, and a terms clause to adapt. - [California AI Transparency Act](https://kennmarq.com/docs/laws/california): the latent disclosure's five items since SB 1000 (30 September 2026), and how to let people verify them. ## SDKs and tools - [Python SDK](https://kennmarq.com/docs/sdk/python): mark, check and verify from Python, in the cloud or on your own machine (coming to PyPI). - [ComfyUI nodes](https://kennmarq.com/docs/comfyui): Mark & Save nodes that replace Save Image, Save Audio and Save Video (coming to the ComfyUI Registry). - [Free checker](https://kennmarq.com/check): anyone can check an image's Content Credentials and watermark in the browser. - [POST /v1/verify](https://kennmarq.com/docs/api/verify): the same check through the API, with a signed result. ## Optional - [Pricing](https://kennmarq.com/pricing): every feature free up to 1,000 marks a month; paid plans from USD 9 a month. - [Robustness report](https://kennmarq.com/docs/robustness): how often the watermark survives compression, resizing, crops and edits. - [Transparency log](https://kennmarq.com/log): every signature and time-stamp, public and append-only. - [Trust center](https://kennmarq.com/trust): where data lives, keys, sub-processors and security answers. - [Changelog](https://kennmarq.com/docs/changelog): every change to the API.