Your AI agent,
anywhere you build.
Full REST API and embed SDK. Plug Blaigent's production-grade AI agent into your own app, mobile product, or internal tool — in minutes, not months.
One API. Every channel.
Whether you're embedding a chat widget, automating WhatsApp responses, or building a voice IVR — the same agent logic and memory runs everywhere.
REST API
Send messages, manage conversations, retrieve memory, and control agent config — all via a clean JSON API. Works from any backend language.
Embed widget
Drop a <script> tag into any page and your agent appears as a fully customised chat widget — branded, responsive, and zero-maintenance.
Webhooks
Subscribe to conversation events — new message, handoff requested, order lookup — and trigger your own backend workflows in real time.
Persistent memory
The agent carries context across sessions. Query or write to customer memory via API so nothing gets repeated across any channel.
Knowledge API
Upload documents, FAQs, or product data programmatically. The agent indexes and retrieves relevant context at query time.
Action hooks
Wire the agent to your own backend actions — booking, payment, CRM update — using structured action schemas. No prompt engineering.
Talking to your agent in 3 lines.
Authenticate with your API key, then POST to the chat endpoint. The agent handles intent detection, memory, policy checks, and response generation automatically.
# Send a message to your agent curl -X POST https://blaigent.up.railway.app/api/v1/agents/customer-service/chat \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "message": "Where is my order?", "customer_id": "cust_12345", "channel": "web", "organization_id": "YOUR_ORG_ID" }' # Response { "response": "Hi! Let me look that up for you...", "intent": "order_tracking", "confidence": 0.97, "session_id": "sess_abc123" }
import requests API_KEY = "YOUR_API_KEY" ORG_ID = "YOUR_ORG_ID" BASE = "https://blaigent.up.railway.app/api/v1" response = requests.post( f"{BASE}/agents/customer-service/chat", headers={"Authorization": f"Bearer {API_KEY}"}, json={ "message": "I need a refund", "customer_id": "cust_12345", "channel": "web", "organization_id": ORG_ID, } ) data = response.json() print(data["response"]) # Agent reply print(data["intent"]) # Detected intent
const response = await fetch( "https://blaigent.up.railway.app/api/v1/agents/customer-service/chat", { method: "POST", headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ message: "Can I book an appointment?", customer_id: "cust_12345", channel: "web", organization_id: ORG_ID, }), } ); const data = await response.json(); console.log(data.response); // Agent reply
<!-- Add before </body> — that's all it takes --> <script src="https://blaigent.up.railway.app/static/widget.js" data-org="YOUR_ORG_ID" data-position="bottom-right" data-accent="#6366f1" defer ></script>
The widget inherits your brand colors, agent name, and avatar from the dashboard — no extra configuration required.
Core endpoints.
All endpoints return JSON. Authenticate every request with Authorization: Bearer YOUR_API_KEY
React to anything your agent does.
Register a webhook URL in your dashboard and Blaigent will POST a signed event payload every time something happens in a conversation.
- New message received from a customer
- Agent triggers a handoff to human
- Action executed (booking, refund, order lookup)
- Conversation closed or resolved
- CSAT rating submitted by customer
- Knowledge base updated
{
"event": "message.received",
"timestamp": "2026-03-11T14:22:00Z",
"organization_id": "org_xyz",
"data": {
"conversation_id": "conv_abc",
"customer_id": "cust_12345",
"channel": "whatsapp",
"message": "Where is my order?",
"intent": "order_tracking",
"agent_response": "I'm looking that up..."
},
"signature": "sha256=abc..."
}
Deploy once. Reach everywhere.
The same API key and organization config drives agents across every channel. Memory and history are shared — customers never repeat themselves.
Embed on any website or SPA. Fully customisable.
Via Twilio or Meta Cloud API. Rich media supported.
Inbound email via Mailgun. Agent replies inline.
Twilio Voice. STT → agent → TTS pipeline.
Twilio SMS. Same agent, condensed responses.
Meta Messenger API. Story replies and DMs.
Full request reference.
Authentication
Every request requires a Bearer token in the Authorization header. Get your API key from Dashboard → Settings → API Keys. Keys are scoped to one organization and can be rotated at any time.
Rate limits
Limits vary by plan. Starter: 60 req/min. Growth: 300 req/min. Scale and Enterprise: custom. All limits are per organization. Exceeding returns 429 Too Many Requests.
Errors
All errors return a JSON body with {"detail": "..."}. HTTP status codes follow standard conventions: 400 bad input, 401 auth, 429 rate limit, 5xx server.
Versioning
The API is versioned via the URL path (/api/v1/). Breaking changes are always introduced in a new version with a migration period of at least 6 months.