
Run your own AI support product on the Neutron AI engine. You keep your brand, your website, your customers and your admin panel. We learn your customers' websites, answer their visitors, collect leads and keep everything up to date.
https://developer.neutronai.pro/v1How it fits together:
POST /v1/customers).POST /v1/site). Neutron AI learns it in the background.POST /v1/chat.All requests and responses are JSON. Call the API from your server only — never put an API key in a browser or mobile app.
Send your API key as a bearer token. Create keys on the API keys page (after confirming your email); each key is shown once.
Authorization: Bearer nk_live_...
Most endpoints act for one of your customers. Name the customer in a second header:
Neutron-Customer: usr_8f3a...
Endpoints marked customer need this header. A customer id that doesn't belong to you returns 404.
Your account has a prepaid credit balance. New developer accounts start with 500 free credits to build and test. When you need more, send a request from the Credits page and we add them to your account.
| Action | Credits |
|---|---|
| One AI answer (widget, API chat) | 1 |
| One website page learned or re-learned | 1 |
| Update check on an unchanged page | 0 |
| Everything else (reading data, settings, forms) | 0 |
At zero credits, chat and learning stop with 402 insufficient_credits. A learning run already in progress finishes with the pages it has, so the balance can dip slightly below zero.
Each customer also has a plan that sets features and monthly caps:
| starter | growth | pro | |
|---|---|---|---|
| AI answers / month | 2,000 | 6,000 | 15,000 |
| Pages learned | 60 | 200 | 600 |
| Full re-learns / month | 2 | 4 | 8 |
| Automatic update checks | weekly | every 3 days | daily |
| Product cards, galleries, options | — | ✓ | ✓ |
| Inquiry forms & leads | — | ✓ | ✓ |
| Insights | — | — | ✓ |
Rate limit: 600 requests per minute per partner. The website widget has its own per-visitor limits.
{ "error": { "type": "insufficient_credits", "message": "The partner account is out of credits. Add credits to continue." } }
| Status | type | Meaning |
|---|---|---|
| 400 | invalid_request | Missing or wrong input |
| 401 | authentication_error | Missing or invalid API key |
| 402 | insufficient_credits | Out of credits, or the customer can't use AI right now |
| 403 | permission_denied | Account or customer suspended, or a feature not in the customer's plan |
| 404 | not_found | No such customer, item or endpoint |
| 409 | conflict | Duplicate external_id, or the website is still learning |
| 429 | rate_limited | Too many requests, or a plan's monthly cap reached |
| 501 | coming_soon | Sales AI and Social AI endpoints |
| 5xx | server_error | Something failed on our side; retry later |
# 1. Create a customer
curl https://developer.neutronai.pro/v1/customers \
-H "Authorization: Bearer $NEUTRON_KEY" -H "Content-Type: application/json" \
-d '{"name":"Acme Lifts","external_id":"acme-001","plan":"growth"}'
# 2. Learn their website (use the id from step 1)
curl https://developer.neutronai.pro/v1/site \
-H "Authorization: Bearer $NEUTRON_KEY" -H "Neutron-Customer: usr_..." \
-H "Content-Type: application/json" -d '{"url":"https://acme-lifts.com"}'
# 3. Ask a question (once learning has started producing pages)
curl https://developer.neutronai.pro/v1/chat \
-H "Authorization: Bearer $NEUTRON_KEY" -H "Neutron-Customer: usr_..." \
-H "Content-Type: application/json" -d '{"message":"What is the max load of the HX-3?"}'
One customer = one business you serve, with one website. Customers never sign in to Neutron AI and never get email from us.
/v1/customers| name | string | Display name |
| company | string | Optional |
| external_id | string | Optional. Your own id; unique per partner |
| plan | string | starter, growth (default) or pro |
{
"id": "usr_8f3a...", "external_id": "acme-001", "name": "Acme Lifts", "company": "",
"plan": "growth", "status": "active", "created_at": 1793000000000,
"site": null,
"usage": { "period": "2026-10", "answers": 0, "pages": 0, "credits": 0 }
}
/v1/customersNewest first. Query: limit (1–100, default 50), cursor (from next_cursor), external_id. Returns { "data": [...], "next_cursor": "..." | null }.
/v1/customers/{id}/v1/customers/{id}Any of name, company, external_id, plan, status (active or suspended). A suspended customer's widget and chat stop answering.
/v1/customers/{id}Deletes the customer's website knowledge, conversations, leads and forms. Cannot be undone. Past usage stays on your statement.
/v1/sitecustomerBody: {"url": "https://example.com"}. Reads the homepage, drafts the agent (name, greeting, starter questions, rules) and starts learning the whole site in the background. Calling it again with a different domain replaces the website and its knowledge.
{
"site": { "id": "site_...", "domain": "acme-lifts.com", "status": "crawling", "pages_found": 42, "pages_done": 0, "widget_key": "wk_...", "agent": { ... } },
"analysis": { ... }, "learning": true, "page_limit": 200
}
/v1/sitecustomerstatus: new, crawling (learning), indexing, ready or error.
/v1/site/learningcustomerProgress for a progress bar: status, pages_found, pages_done, page_cap, a knowledge summary and the recent pages learned. Poll every few seconds while status is crawling.
/v1/site/synccustomerChecks the website for new, changed and removed pages now (at most every 15 minutes). Only changed pages cost credits. Update checks also run automatically on the plan's schedule.
/v1/site/synccustomerSchedule and last results, plus a webhook URL the customer's website can call after publishing to trigger a check.
/v1/site/relearncustomerWipes and re-learns the whole website. Counts toward the plan's monthly re-learns.
/v1/knowledgecustomerEverything learned: summary, pages and products (name, category, features, specs, options, price, images).
/v1/knowledge/pages/{id}customerOne page with its full extracted text.
/v1/knowledge/pages/{id}customer/v1/knowledge/products/{id}customerBody: {"excluded": true} hides the page or product from the agent; false brings it back.
/v1/agentcustomer/v1/agentcustomer| agent_name | string | Shown in the chat header (max 60) |
| tone | string | friendly, professional, expert, concise or enthusiastic |
| language | string | auto (visitor's language) or a language name, e.g. English |
| instructions | string | Extra rules for the agent (max 4,000) |
| welcome | string | First message (max 500) |
| starters | string[] | Up to 6 suggested questions |
| lead_capture | boolean | Offer the quote form (growth, pro) |
/v1/agent/suggestcustomerDrafts a new name, welcome, starters and instructions from the learned website. Returns suggestions only; save them with PUT /v1/agent.
The ready-made chat bubble for the customer's website. It only shows on the customer's own domain (plus any allowed domains).
/v1/widgetcustomer{
"key": "wk_...", "domain": "acme-lifts.com", "white_label": true, "style": { ... },
"snippet": "<script src=\"https://neutronai.pro/widget.js\" data-agent=\"wk_...\" async></script>"
}
Paste snippet before </body> on the customer's site. The "Powered by" label is hidden for every paid plan.
/v1/widgetcustomerSend the style object back with your changes: colour, theme, position, launcher, title, avatar, radius, greeting bubble, auto-open, starters, branding and allowed domains.
Build your own chat interface. Each answer costs 1 credit.
/v1/chatcustomer| message | string | The visitor's message (max 2,000) |
| conversation_id | string | Optional. Continue a conversation |
| visitor_id | string | Optional. Your id for the visitor; a conversation can only be continued with the same visitor_id |
| page_url | string | Optional. Page the visitor is on |
| stream | boolean | Optional. true returns server-sent events |
{
"conversation_id": "cv_...", "message_id": "m_...",
"text": "The HX-3 carries up to 400 kg at 0.4 m/s, which suits 3–5 passengers.",
"blocks": [ { "type": "products", "items": [ ... ] } ],
"quick": [ "What does installation involve?" ],
"sources": [ { "n": 1, "title": "HX-3 Home Lift", "url": "https://..." } ],
"ms": 1840
}
blocks carry rich content: product cards, galleries, option pickers, quote forms and finished inquiries (growth and pro). quick holds suggested follow-up questions.
With "stream": true the response is text/event-stream with events meta (conversation and message ids), delta ({"t": "text"} pieces), then done (the same object as above) or error.
/v1/conversationscustomerLatest 100, newest first. channel is widget, api or playground.
/v1/conversations/{id}customer/v1/conversations/{id}customer/v1/messages/{id}/feedbackcustomerBody: {"value": 1} helpful, -1 not helpful, 0 clear.
Growth and pro plans. The agent collects contact details and answers to your customer's own questions during the chat.
/v1/leadscustomerLatest 300. Form leads have status partial or complete and the answers in data.
/v1/formscustomer/v1/formscustomer/v1/forms/{id}customer{
"name": "Lift quote", "purpose": "Collect what we need to price a home lift",
"trigger": "When the visitor asks for a price or quote", "intro": "",
"active": true,
"fields": [
{ "key": "floors", "label": "Number of floors", "type": "number", "required": true },
{ "key": "shaft", "label": "Existing shaft?", "type": "yesno" },
{ "key": "finish", "label": "Cabin finish", "type": "choice", "options": ["Glass", "Steel", "Wood"] },
{ "key": "email", "label": "Email", "type": "email", "required": true }
]
}
Field types: text, multiline, number, choice, yesno, email, phone. Up to 10 forms per customer.
/v1/forms/{id}customerBody: {"active": false} pauses a form.
/v1/forms/{id}customer/v1/forms/generatecustomerBody: {"text": "..."} — paste an existing form or list of questions; returns a draft form to review and save.
/v1/statscustomerTotals: conversations, answers, average answer time, leads, feedback and knowledge.
/v1/insightscustomerPro plan. Last 30 days: daily questions and leads, top topics, most-shown products and questions the website couldn't answer (gaps).
/v1/accountYour partner account: credits balance, status and this month's usage.
/v1/usage?period=2026-10Answers, pages and credits for a month, in total and per customer — use it to bill your customers.
The same engine will power lead finding and personal outreach (/v1/sales/…) and social posting with one inbox (/v1/social/…). These paths answer 501 coming_soon today. Tell us what you need and we'll let you know when they open.