Praus Developers Get API access

Get started

API keys and access

How API access is turned on, how to create and protect keys, and how keys share your account’s allowance.

#Getting access

The Praus API is turned on by our team, not by a self-service sign-up. Contact us and choose API access. We review the request and enable it for eligible accounts.

  • API access is available on Praus Plus, Pro, Teams and Enterprise after activation by our team. Free and trial accounts don’t include it.
  • Teams and Enterprise access, authorized users and usage limits are set by agreement. Contact us to arrange access for your organization.
  • On a Pro plan, only the account owner can use the API.
  • Account setup must be complete before access can be used.
  • Developer settings in the app sit behind a separate Developer unlock, which we provide when access is enabled.

#Manage your keys

Create and revoke keys in the developer dashboard. You can also open it from Settings → Developer in the Praus app.

  1. 1
    Sign in to Praus

    Open the developer dashboard and sign in with the account that has API access.

  2. 2
    Unlock Developer access

    Enter the access password provided by our team. The dashboard returns to your selected page after sign-in.

  3. 3
    Create a key

    Give it a name you will recognize, such as the service that uses it. The full key is shown once. Copy it into your secrets manager before you close the dialog.

  4. 4
    Revoke when needed

    Revoke a key from the same screen. Requests using it stop working with 401 UNAUTHORIZED.

Keys currently begin with fk_live_. Treat that prefix as an implementation detail that may change, and don’t validate keys by it. The examples in these docs always use the placeholder YOUR_PRAUS_API_KEY.

#Your dashboard

The dashboard shows your plan, active keys and current monthly API calls. Use Playground to send a real message without copying an API key into a browser.

Playground requests share your account’s API, message and compute allowances. Usage counts admitted requests, including calls that later fail or are cancelled. Daily and per-key breakdowns begin when detailed tracking is enabled; older calls remain included in the account total and are labeled separately.

#Keep keys secret

  • Store keys in environment variables or a secrets manager, never in source control.
  • Call Praus only from your server. Keys must never appear in browser JavaScript, mobile apps or public repositories.
  • Use a separate key for each service or environment, so you can revoke one without affecting the others.
  • If a key may have been exposed, revoke it immediately and create a new one.

#Rotate a key

  1. Create a new key in Settings → Developer.
  2. Deploy it to your service and confirm requests succeed.
  3. Revoke the old key.

Plus allows 2 active keys and Pro allows 4. Teams and Enterprise key limits are set by agreement. Leave room for the new key before you rotate. See Limits and errors.

#Keys share one allowance

Every key on an account draws from the same allowance. Requests per minute, concurrent requests and monthly calls are counted across all of the account’s keys together, so adding a key doesn’t add capacity.

#Calling from a web app

If your users interact with Praus through your website, put a small endpoint on your server that adds the key and forwards the request. Your page calls your endpoint, never Praus directly.

import express from "express";

const app = express();
app.use(express.json());

app.post("/ask", async (req, res) => {
  // Authenticate and rate-limit your own users here first.
  const praus = 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: String(req.body.message ?? ""),
      queryProfile: "ask",
      searchEnabled: false,
      stream: false,
      sessionOnly: true,
      userMemory: { memories: [], customInstructions: "" },
    }),
  });
  const data = await praus.json();
  if (!praus.ok) return res.status(praus.status).json({ code: data.code, message: data.message });
  res.json({ answer: data.result.content });
});

app.listen(3000);

Authenticate your own users and apply your own limits on that endpoint. Otherwise anyone who finds it can spend your account’s allowance.