This page provides a quick, actionable path to authenticate, call REST endpoints, and capture streaming events from the middleware.
API Structure
The Praxis AI API is organized into three functional areas:Authenticate
Sign in or authenticate to retrieve an access token.
Runtime
Endpoints for selecting a Digital Twin, creating conversations, developing assistants, and dialoguing with AI models.
Administration
Configure Digital Twins, set up permissions and entitlements, audit user history, and monitor activity.
Getting Started
1
Obtain an authorization token
All API requests require an authorization token issued after successful authentication. See the Authentication API for how to sign in and use the token in requests.
2
Know your Base URLs
- REST API base:
https://hiimpria.ai/api - Socket.IO middleware (stream events):
https://hiimpria.ai/socket.io
3
Make a test request
Use your token and send a simple JSON request to verify connectivity and headers.
Using the API
The Praxis API follows standard RESTful conventions:- JSON for all requests and responses
- HTTP status codes communicate success/failure
- Error responses return a consistent JSON shape with details
- Rate limits protect service stability
If you’re building a browser client, ensure you include the correct auth header on every request. Authorization tokens are only valid for 24 hours.
Streaming with Socket.IO
You can connect to Praxis AI middleware to receive streaming events while REST requests are in-flight. The server emits stream chunks to your socket; you must include the current socket ID in Q&A requests to link streams to your session.1 Install the Socket.IO Client
2 Connect and register your user
3 Listen for streaming and diagnostic events
payload received from the stream
Note that the final response may differ from the
prompt returned while streaming.4 Include socketId in your Q&A API requests
The server requires the active Socket.IO session ID to stream chunks to your client. IncludesocketId in requestArgs.
5 Manage reconnections
When the QANDA request response includes"streamingFailed": true, it indicates that the middleware has lost the backend Socket ID mapping (user email to client socket ID), preventing it from communicating response chunks back to the client. This typically occurs when multiple browser windows or tabs are open for the same user email, causing them to compete for the same backend session and overwriting each other’s socket registrations. To resolve this issue, you can re-establish the socket connection to re-register the most current client handle and restore proper communication between the middleware and the active client session.
6 Abort requests
To abort a request while executing, emit acancel_request event:
The
cancel_request message signals the controller API to interrupt the ongoing communication and attempt a graceful termination of the conversation. While the controller works to terminate resources cleanly, there may be a slight delay before the process completes. You will only be charged for any partial response generated up to the point of cancellation.7 Stop streaming the current request
To stop streaming the current response without aborting the request itself, emit acancel_streaming event:
cancel_streaming applies only to the current response stream and is cleared automatically before the next interaction.API vs SDK
While the API provides direct access to all capabilities, the TypeScript/JavaScript SDK simplifies most tasks.API Benefits
• Direct access to all Praxis features
• Language-agnostic integration
• Fine-grained request/response control
• Ideal for custom platforms or gateways, mobile applications
• Language-agnostic integration
• Fine-grained request/response control
• Ideal for custom platforms or gateways, mobile applications
SDK Benefits
• Higher-level abstractions
• Seamless SSO authentication • UI Ready to use
• Supports LMS Such as Canvas, Moodle, D2L, LTI
• Seamless SSO authentication • UI Ready to use
• Supports LMS Such as Canvas, Moodle, D2L, LTI
Error Handling
The API uses standard HTTP status codes:- 2xx: Success
- 4xx: Client error (invalid request, missing parameters, unauthorized)
- 5xx: Server error