Developers
Praus API
Bring Praus answers into your own applications with one HTTPS endpoint, JSON requests and optional streaming.
#What you can build
The Praus API returns the same kind of answer you get in the Praus app, through a single endpoint your server calls. You send a message and, if you like, the earlier turns of the conversation. Praus returns the answer as one JSON response or as a stream of events.
Questions, calculations, summaries and written drafts, returned as text.
Ask for JSON in your message and parse the answer in your own code.
Describe the function you need and get working code back to review and run.
Send earlier user and assistant turns so Praus answers in context.
Show the answer as it is written, using newline-delimited JSON events.
Authenticate with a Praus API key in either of two standard headers.
#A first request
Every request goes to one endpoint on praus.ai. This is the whole integration:
curl https://praus.ai/api/chat/compound-pipeline-sync \
-H "Content-Type: application/json" \
-H "X-Api-Key: $PRAUS_API_KEY" \
-d '{
"message": "A warehouse has 12 boxes containing 24 units each and ships 37 units. How many units remain?",
"queryProfile": "ask",
"searchEnabled": false,
"stream": false,
"sessionOnly": true,
"userMemory": {
"memories": [],
"customInstructions": ""
}
}'import os
import requests
response = requests.post(
"https://praus.ai/api/chat/compound-pipeline-sync",
headers={
"Content-Type": "application/json",
"X-Api-Key": os.environ["PRAUS_API_KEY"],
},
json={
"message": "A warehouse has 12 boxes containing 24 units each and ships 37 units. How many units remain?",
"queryProfile": "ask",
"searchEnabled": False,
"stream": False,
"sessionOnly": True,
"userMemory": {"memories": [], "customInstructions": ""},
},
timeout=120,
)
data = response.json()
if not response.ok:
raise RuntimeError(f"{response.status_code} {data.get('code')}: {data.get('message')}")
print(data["result"]["content"])// Node.js 18 or later (built-in fetch). Run on your server, never in a browser.
const response = await fetch("https://praus.ai/api/chat/compound-pipeline-sync", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": process.env.PRAUS_API_KEY,
},
body: JSON.stringify({
message: "A warehouse has 12 boxes containing 24 units each and ships 37 units. How many units remain?",
queryProfile: "ask",
searchEnabled: false,
stream: false,
sessionOnly: true,
userMemory: { memories: [], customInstructions: "" },
}),
});
const data = await response.json();
if (!response.ok) {
throw new Error(`${response.status} ${data.code}: ${data.message}`);
}
console.log(data.result.content);The answer is in result.content:
{
"type": "done",
"result": {
"content": "251",
"sources": [],
"images": [],
"thoughtProcess": []
}
}#How access works
- 1Request access
Contact us and choose API access. API access is available on Plus, Pro, Teams and Enterprise after activation by our team. On Pro, access is limited to the account owner. Teams and Enterprise access and limits are set by agreement.
- 2Unlock Developer settings
Sign in to the Praus app. Once access is enabled, the Developer section appears in Settings after a separate Developer unlock.
- 3Create a key
Create a key in Settings → Developer. The full key is shown once, so store it in a secrets manager straight away.
- 4Call the API from your server
Send the key in the
X-Api-KeyorAuthorization: Bearerheader. Follow the Quickstart.
#Explore the docs
#Verify your integration
Before you connect a production application, run small checks with your own account and API key:
- Check an arithmetic answer against an independent calculation.
- Parse structured extraction as JSON and validate the expected fields.
- Review generated code and execute it in an isolated test environment.
- Send a follow-up with conversation history and check that the context is preserved.
- Read a stream through its final done event, including error and reset handling.
- Verify authentication, then confirm a revoked test key no longer works.
You can start with the Playground, then run the request from your own server. Playground uses your signed-in session; a server integration uses an API key.