Skip to main content
POST
/
api
/
auth
/
api-key-signin
Exchange a Pria API key for a JWT
curl --request POST \
  --url https://pria.praxislxp.com/api/auth/api-key-signin \
  --header 'x-api-key: <api-key>'
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "profile": {
    "_id": "6430736fd62d650040420674",
    "email": "integration-bot@praxis-ai.com",
    "fname": "Integration",
    "lname": "Bot",
    "accountType": "admin",
    "plan": "pro",
    "status": "active",
    "credits": 1000,
    "creditsUsed": 12,
    "institution": {
      "_id": "68793ef2a8a4a5eaff36e7ca",
      "name": "domain.edu",
      "status": "active",
      "credits": 500,
      "ainame": "Hugo"
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.praxis-ai.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-api-key
string
header
required

Long-lived Pria API key (format pria_<40 hex chars>) used to obtain a JWT via POST /api/auth/api-key-signin. Only valid on the api-key-signin endpoint — every other admin/user endpoint expects the JWT issued by that exchange (sent as Authorization: Bearer <jwt> or x-access-token: <jwt>).

Headers

x-api-key
string
required

Pria API key (pria_ + 40 hex chars). Provisioned by an admin via the admin UI.

Pattern: ^pria_[0-9a-f]{40}$

Response

Key accepted — JWT and minimal profile returned.

token
string

JWT signed for the API-key-bound user. Use it in subsequent calls via Authorization: Bearer <token> or the x-access-token header. Token TTL matches the normal signin flow (6 hours by default, configurable via JWT_VALIDITY_SEC).

Example:

"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

profile
object

Minimal profile envelope tailored for SDK / integration consumers. Smaller than the regular signin profile — see properties below.