# For your website

> Add booking, a support form and bug reporting to your website: with one line of HTML, as a React component, as an iframe or via the REST API. Everything you need is on this page.

- Page: https://www.ciro-noise.de/entwickler
- Deutsche Fassung: https://www.ciro-noise.de/entwickler.md

## Quick start in three steps

- **Create an embed**: Sign in and open Organization › Embeds. Choose what to embed: booking, support form or bug reporting. CIRO NOISE creates a public key for it.
- **Add your domain**: Enter the domains the key should work on, for example https://my-company.com. While the list is empty, it works everywhere. That’s handy for trying it out. Before your site goes live, enter your domains.
- **Paste the snippet**: Copy the snippet from the back office or from this page and insert your key. The example below embeds a booking form inline.

## Booking

Visitors see the open slots of an appointment type, pick a time and answer your questions. The booking lands in CIRO NOISE: the visitor gets a confirmation with a calendar entry, the responsible person on your team a notice. You create one key per appointment type.

## Support form

Customers write to you straight from your site. Every request lands in the Requests feature, the customer gets a confirmation with a link to the conversation, your team a notification.

## Bug reporting

Let the users of your application report bugs and improvements without having to know a ticket system. Every report becomes a task on the board you set on the key. Page, browser and window size are sent along automatically, and a screenshot too if you like.

## Events and JavaScript API

The loader reports what happens in the frame as an event on your page. You can use it, for example, to redirect to a thank-you page or for your own analytics. window.CiroEmbed lets you control the loader directly.

## REST reference

Two versioned endpoints under /api/v1, with CORS for every browser. The key always travels in a header, never in the body.

## Security and limits

- **Allowed domains**: If the key has a list, CIRO NOISE only accepts calls from those domains. It compares the full origin, not just the beginning. An empty list allows any domain.
- **Revoking**: A revoked key stops working immediately, on every page. Create a new one and swap it in.
- **Rate limits**: Support:  requests per hour and address,  per key. Bug reporting:  per hour and address,  per key. Bookings:  per hour and organization.
- **HTTPS only**: The frame can be embedded on any HTTPS page, plus localhost and 127.0.0.1 for development.
- **Sandboxed frame**: The iframe runs in a sandbox without allow-top-navigation: it cannot navigate your page away and sees neither its cookies nor its data.
- **Stable address**: /ciro-embed/v1.js stays as it is. If behavior changes, v2.js ships next to it, so your integration won’t break overnight.

## When it doesn’t work

- **The API answers 401**: First check that the key matches the kind: a booking key cannot create a request. Then check whether it is revoked and whether your domain is on the list, with https:// and without a path.
- **The widget stays empty**: Place the script below the target element or load it with async. The loader detects site builders that insert sections later by itself.
- **The iframe cuts off**: Without the loader the iframe doesn’t know its height. Use the loader or the React component, or raise height on the iframe.
- **Nothing appears in a local test**: Locally only localhost or 127.0.0.1 work over http. Other addresses need HTTPS.

## CIRO NOISE at a glance

- CIRO NOISE is a workspace for small businesses and teams of up to about 50 people: wiki, tasks, customer requests, finance with quotes and invoices, customers (CRM), meetings, knowledge with AI, social media, password vault, and time tracking behind one login.
- Price: the first 2 seats are free, with every feature. Each additional seat costs €25 per month plus VAT. No credit card to start.
- Privacy: servers and AI run in EU data centers, content never trains AI models, and permissions apply per person and feature.
- AI connection: Claude and other AI assistants connect through MCP, the open standard for AI tools, with exactly the permissions of the person.
- Provider: CIRO GmbH, Eching, Germany. Contact: hello@ciro.gmbh, phone +49 89 24 88 31 22.
