Developers
Culenz API for developers
The Culenz API gives software and AI agents the same answers our team gives people.
Search our pages, list our solutions, get contact details and send a demo request, all as JSON.
01Quick start
The base address is https://www.culenz.com/api/v1. Every endpoint answers in JSON, and no account or key is needed.
Start with the index. It lists every endpoint, this guide, the OpenAPI file and our other agent interfaces.
curl https://www.culenz.com/api/v1Then search the site for a topic, or list the solutions a person can book a demo for.
The full description is OpenAPI 3.1 at https://www.culenz.com/api/v1/openapi.json. Most API tools can import it directly.
02Authentication and access
The API is public. There is no registration, no OAuth flow and no API key to manage.
Send no Authorization header; we ignore one if it arrives. Access is limited per caller address instead, as described below.
Browsers can call it from any site, because every response allows cross-origin reads. Our auth.md file states the same rules for agents.
03Endpoints at a glance
Version 1 has six operations. Each has a unique operationId in the OpenAPI file, so it maps cleanly to a function call.
- GET /api/v1 (getApiIndex): the API index, with links to docs, OpenAPI, MCP and A2A.
- GET /api/v1/status (getStatus): a health check that reports ok or degraded.
- GET /api/v1/solutions (listSolutions): the five solutions you can request a demo for, with page links.
- GET /api/v1/pages (searchPages): keyword search across every public page on culenz.com.
- GET /api/v1/contact (getContact): email, phone, WhatsApp, markets served and response time.
- POST /api/v1/enquiries (createEnquiry): sends a demo or brochure request to our team.
Every response, including errors, sends an API-Version header with the exact version that answered.
04Search the site
The pages endpoint searches titles and summaries of every public page. Every word you send must appear in a result.
Title matches rank first. Use limit for one to fifty results, and pillar to stay inside one section.
The sections are Solutions, Simulators, Platforms, Industries, Work and Company. Without q, it lists pages in site order.
curl "https://www.culenz.com/api/v1/pages?q=hologram&limit=1"{
"query": "hologram",
"count": 1,
"results": [
{
"slug": "/solutions",
"url": "https://www.culenz.com/solutions",
"title": "XR, Hologram & Digital Twin Solutions for Business",
"pillar": "Solutions",
"summary": "Culenz builds immersive experiences in four groups: XR apps, holograms and live events, AI digital twins, and turnkey museums. One team owns each project, from scope to show day."
}
]
}05Request a demo
The enquiries endpoint sends a demo or brochure request to the Culenz team. A producer replies within one working day.
Send it only when a person has asked to be contacted. Use their real details, and never send test requests.
Name, email, phone, company and solution are required. Solution must be a name from the solutions endpoint.
- message: the project, venue, dates and goals, in the person's words.
- brochure: send yes to also email our master brochure.
- sector: the person's industry, from the list in the OpenAPI file.
- demoType and location: how and where they want to see the demo.
curl -X POST https://www.culenz.com/api/v1/enquiries \
-H "Content-Type: application/json" \
-d '{"name":"<full name>","email":"<work email>","phone":"<phone with country code>",
"company":"<company>","solution":"VR Experience",
"message":"<project, venue and dates>"}'{
"status": "received",
"message": "Thanks. A Culenz producer will reply within one working day.",
"id": <reference number>,
"receivedAt": "<time received>"
}A 202 means the request reached our team. Tell the person to expect a call or email from Culenz.
06Errors and problem details
Every error is an RFC 9457 problem document, sent as application/problem+json. It is never an HTML page.
Each one has a type link, a title, the status, a detail line and a machine-readable code. A hint says how to fix the request.
Validation errors also list the failing fields. Unknown addresses anywhere under /api return the same JSON shape.
{
"type": "https://www.culenz.com/developers#error-missing-fields",
"title": "Validation failed",
"status": 422,
"detail": "Missing phone",
"code": "missing_fields",
"instance": "/api/v1/enquiries",
"hint": "Add the missing fields and send the request again.",
"fields": ["phone"]
}- invalid_json (400)
- The body is not a JSON object. Send name, email, phone, company and solution as JSON.
- invalid_parameter (400)
- A query value is out of range. The parameter field names it.
- not_found (404)
- No endpoint lives at that address. Check the index for the right path.
- method_not_allowed (405)
- The method is wrong for this endpoint. The Allow header lists the right one.
- missing_fields (422)
- Required fields are empty. Add the fields listed and try again.
- invalid_email (422)
- The email address is not valid. Ask the person for a working address.
- invalid_phone (422)
- The phone number needs six to eighteen digits, with the country code.
- rate_limited (429)
- This address sent too many requests. Wait for the seconds in Retry-After.
- delivery_failed (502)
- We could not deliver the request. Try again shortly, or email info@culenz.com.
07Rate limits and headers
Read endpoints allow 120 requests a minute per address. Enquiries allow ten an hour per address.
Every response sends RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and RateLimit-Policy. Reset is in seconds.
A 429 response adds Retry-After in seconds. Pace your calls with RateLimit-Remaining, and you should never see one.
RateLimit-Policy: 120;w=60
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 4208Versioning and deprecation
The major version is in the path, so this is /api/v1. Within v1, we only add things.
New endpoints, new optional fields and new enum values can arrive at any time. Your client should ignore fields it does not know.
A breaking change ships as /api/v2, and v1 keeps working next to it.
- An endpoint due for removal sends a Deprecation header, as RFC 9745 describes.
- It also sends a Sunset header with the last date it will work, as RFC 8594 describes.
- We send both at least six months before the endpoint stops working.
- Each notice also appears in this section, with the date and the replacement.
There are no deprecations today. Version 1.0.0 is the current release.
09Culenz MCP server
AI assistants can use the same features through our Model Context Protocol server at https://www.culenz.com/mcp.
It offers four tools: search_culenz, list_solutions, get_contact_details and request_demo. Its own page has the setup steps.
10A2A agent card
Other agents can talk to the Culenz agent over the Agent2Agent protocol, version 1.0, with JSON-RPC.
The card is at https://www.culenz.com/.well-known/agent-card.json, and the endpoint is https://www.culenz.com/a2a.
Send a SendMessage call with a text part to ask a question. Send a data part with the person's details to request a demo.
curl -X POST https://www.culenz.com/a2a \
-H "Content-Type: application/json" -H "A2A-Version: 1.0" \
-d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{
"messageId":"m1","role":"ROLE_USER","parts":[{"text":"VR safety training"}]}}}'The agent replies with a message, never a long-running task. It also accepts message/send from A2A 0.3 clients.
11Machine-readable files
These files describe our interfaces for tools and agents. Each one is public and allows cross-origin reads.
- OpenAPI 3.1: https://www.culenz.com/api/v1/openapi.json
- API catalog (RFC 9727): https://www.culenz.com/.well-known/api-catalog
- MCP server card: https://www.culenz.com/.well-known/mcp/server-card.json
- A2A agent card: https://www.culenz.com/.well-known/agent-card.json
- AI catalog: https://www.culenz.com/.well-known/ai-catalog.json
- Site index for language models: https://www.culenz.com/llms.txt
- Access rules for agents: https://www.culenz.com/auth.md
Every page on this site also comes as Markdown. Send Accept: text/markdown, or follow the alternate link in the page head.
12Rules for agents
- Send an enquiry only when a person asked to be contacted.
- Confirm the details with the person before you send them.
- Never invent, test or repeat enquiries. Each one reaches a real person on our team.
- Quote prices only from our team, never from guesses.
The admin panel under /admin is for Culenz staff only. It is not an agent interface.
13Support and contact
Questions about the API go to info@culenz.com. We reply within one working day.
For anything urgent, call or WhatsApp +91-7014647391. Tell us the request path and the time, and we will check our logs.
