Quickstart
Create a project, crawl it, query the API, and embed search.
Browse docs
This guide uses SigNoz opens in a new tab as the example site. The same steps work for any public docs, changelog, blog, pricing, or product pages.
1. Create a project
Create a Search project for the site you want visitors to search. Add the URL, crawl rules, crawl frequency, and page limit in one setup flow.
For SigNoz, use:
Project name: SigNozWebsite URL: https://signoz.ioInclude paths: /docs, /docs/**, /pricing, /pricing/**Exclude paths: noneCrawl frequency: DailyMax pages: 1,000When the crawl finishes, the source should show indexed pages. For a SigNoz docs source, a useful crawl includes pages like signoz.io/docs/install/, signoz.io/docs/instrumentation/, and signoz.io/docs/userguide/logs/.
2. Query the API
Create a Browser/public key for a website search box. Restrict it to the website origins where it may run, then call /v1/search directly from the browser. The browser supplies the Origin header automatically.
const response = await fetch("https://api.ceisium.com/v1/search", { method: "POST", headers: { Authorization: `Bearer ${CEISIUM_PUBLIC_SEARCH_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ project_id: CEISIUM_PROJECT_ID, query: "OpenTelemetry Python instrumentation", top_k: 8, path_prefix: "https://signoz.io/docs/", }),});const { results } = await response.json();If you configured allowed result URL prefixes on the key, send a matching path_prefix with every request.
3. Embed search
Use a UI component when visitors should search inside your product site.
Start with one of these patterns:
- Command palette for keyboard-first docs search.
- Inline search for a visible search field on docs pages.
- Search bar when the whole bar should open a modal.
- Search modal for a SigNoz-style search overlay.
Use CEISIUM_PUBLIC_SEARCH_KEY only for a Browser/public key with its website and result restrictions configured. If you prefer to proxy searches through your backend, create a Server key, store it as CEISIUM_SEARCH_KEY, and never expose that key in browser code.