> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://docs.prividium.com/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

# auth

## POST /auth/login/oidc

`POST /auth/login/oidc`

Login with OIDC

### Request body (required) (`application/json`)

- `jwt` `string <jwt>` _(required)_
- `passkeyAssertion` `object`
  - `id` `string` _(required)_
  - `rawId` `string` _(required)_
  - `response` `object` _(required)_
    - `clientDataJSON` `string <base64url>` _(required)_
    - `authenticatorData` `string` _(required)_
    - `signature` `string` _(required)_
    - `userHandle` `string`
  - `authenticatorAttachment` `string`
  - `clientExtensionResults` `object` _(required)_
  - `type` `string` _(required)_

### Responses

#### `200`: Default Response

#### `400`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `403`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `429`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/login/oidc \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "jwt": "string",
  "passkeyAssertion": {
    "id": "string",
    "rawId": "string",
    "response": {
      "clientDataJSON": "string",
      "authenticatorData": "string",
      "signature": "string",
      "userHandle": "string"
    },
    "authenticatorAttachment": "platform",
    "clientExtensionResults": {},
    "type": "public-key"
  }
}'
```

```ts
fetch('/api/auth/login/oidc', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    jwt: 'string',
    passkeyAssertion: {
      id: 'string',
      rawId: 'string',
      response: {
        clientDataJSON: 'string',
        authenticatorData: 'string',
        signature: 'string',
        userHandle: 'string'
      },
      authenticatorAttachment: 'platform',
      clientExtensionResults: {},
      type: 'public-key'
    }
  })
})
```

## POST /auth/login/crypto-native

`POST /auth/login/crypto-native`

Login with Crypto Native

### Request body (required) (`application/json`)

- `message` `string` _(required)_
- `signature` `string` _(required)_
- `nonceToken` `string` _(required)_
- `passkeyAssertion` `object`
  - `id` `string` _(required)_
  - `rawId` `string` _(required)_
  - `response` `object` _(required)_
    - `clientDataJSON` `string <base64url>` _(required)_
    - `authenticatorData` `string` _(required)_
    - `signature` `string` _(required)_
    - `userHandle` `string`
  - `authenticatorAttachment` `string`
  - `clientExtensionResults` `object` _(required)_
  - `type` `string` _(required)_

### Responses

#### `200`: Default Response

#### `400`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `401`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `403`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `429`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/login/crypto-native \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "message": "string",
  "signature": "string",
  "nonceToken": "string",
  "passkeyAssertion": {
    "id": "string",
    "rawId": "string",
    "response": {
      "clientDataJSON": "string",
      "authenticatorData": "string",
      "signature": "string",
      "userHandle": "string"
    },
    "authenticatorAttachment": "platform",
    "clientExtensionResults": {},
    "type": "public-key"
  }
}'
```

```ts
fetch('/api/auth/login/crypto-native', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: 'string',
    signature: 'string',
    nonceToken: 'string',
    passkeyAssertion: {
      id: 'string',
      rawId: 'string',
      response: {
        clientDataJSON: 'string',
        authenticatorData: 'string',
        signature: 'string',
        userHandle: 'string'
      },
      authenticatorAttachment: 'platform',
      clientExtensionResults: {},
      type: 'public-key'
    }
  })
})
```

## POST /auth/login/tenant

`POST /auth/login/tenant`

Tenant login

### Request body (required) (`application/json`)

- `message` `string` _(required)_
- `signature` `string` _(required)_
- `nonceToken` `string` _(required)_

### Responses

#### `200`: Default Response

Body (`application/json`):

- `token` `string` _(required)_
- `expiresAt` `string <date-time>` _(required)_
- `renewableUntil` `string <date-time>` _(required)_

#### `400`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `403`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/login/tenant \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "message": "string",
  "signature": "string",
  "nonceToken": "string"
}'
```

```ts
fetch('/api/auth/login/tenant', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: 'string',
    signature: 'string',
    nonceToken: 'string'
  })
})
```

## POST /auth/login/service

`POST /auth/login/service`

Service login

### Request body (required) (`application/json`)

- `message` `string` _(required)_
- `signature` `string` _(required)_
- `nonceToken` `string` _(required)_

### Responses

#### `200`: Default Response

Body (`application/json`):

- `token` `string` _(required)_
- `expiresAt` `string <date-time>` _(required)_
- `renewableUntil` `string <date-time>` _(required)_

#### `400`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `403`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/login/service \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "message": "string",
  "signature": "string",
  "nonceToken": "string"
}'
```

```ts
fetch('/api/auth/login/service', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: 'string',
    signature: 'string',
    nonceToken: 'string'
  })
})
```

## POST /auth/logout

`POST /auth/logout`

Logout

### Responses

#### `204`: Default Response

#### `401`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/logout \
  --request POST
```

```ts
fetch('/api/auth/logout', {
  method: 'POST'
})
```

## GET /auth/current-session

`GET /auth/current-session`

Get current session information

### Responses

#### `200`: Default Response

Body (`application/json`):

- `type` `string` _(required)_
- `expiresAt` `string <date-time>` _(required)_
- `renewableUntil` `string <date-time>` _(required)_
- `oauthClientId` `string | null` _(required)_

#### `401`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `403`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/current-session
```

```ts
fetch('/api/auth/current-session')
```

## POST /auth/extend-session

`POST /auth/extend-session`

Extend the current session idle deadline

### Responses

#### `200`: Default Response

Body (`application/json`):

- `expiresAt` `string <date-time>` _(required)_
- `renewableUntil` `string <date-time>` _(required)_

#### `401`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/extend-session \
  --request POST
```

```ts
fetch('/api/auth/extend-session', {
  method: 'POST'
})
```

## POST /auth/application-session

`POST /auth/application-session`

Issue a session bound to an OAuth client from the account session ("Login with Prividium"). The returned token is accepted only on the application surface (RPC, profile, wallet, ABI, session lifecycle).

### Request body (required) (`application/json`)

- `oauthClientId` `string` _(required)_

### Responses

#### `200`: Default Response

Body (`application/json`):

- `token` `string` _(required)_
- `expiresAt` `string <date-time>` _(required)_
- `renewableUntil` `string <date-time>` _(required)_

#### `401`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

#### `404`: Default Response

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `issues` `unknown[]`

### Example request

```bash
curl /api/auth/application-session \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{
  "oauthClientId": "string"
}'
```

```ts
fetch('/api/auth/application-session', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    oauthClientId: 'string'
  })
})
```
