Praus Developers Get API access

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.

Answers and drafting

Questions, calculations, summaries and written drafts, returned as text.

Structured output

Ask for JSON in your message and parse the answer in your own code.

Code generation

Describe the function you need and get working code back to review and run.

Conversations

Send earlier user and assistant turns so Praus answers in context.

Streaming

Show the answer as it is written, using newline-delimited JSON events.

Key-based access

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:

200 OK · application/json
{
  "type": "done",
  "result": {
    "content": "251",
    "sources": [],
    "images": [],
    "thoughtProcess": []
  }
}

#How access works

  1. 1
    Request 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.

  2. 2
    Unlock Developer settings

    Sign in to the Praus app. Once access is enabled, the Developer section appears in Settings after a separate Developer unlock.

  3. 3
    Create a key

    Create a key in Settings → Developer. The full key is shown once, so store it in a secrets manager straight away.

  4. 4
    Call the API from your server

    Send the key in the X-Api-Key or Authorization: Bearer header. 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.