# Agent Embed

Source: https://opvs.ai/docs/api/agent-embed

## `GET` /api/v1/embed/context

**Embed Context Read**

Service-to-service read for the 1.2 gateway plugin. Auth is ``X-Admin-Key`` (the plugin, like skills-meta). ``flow_id`` + ``url`` are supplied server-side by the plugin from ``ctx`` — never the LLM for ``flow_id``.

**Parameters**

- `flow_id` (query, string, required)
- `url` (query, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/embed/context' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/embed/context",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/context", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/embed/context", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/embed/context

**Embed Context Upload**

Store the visitor's current page content for scoped-pull by the agent.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/context' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "token": "string",
  "url": "string",
  "markdown": "string"
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/context",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"token": "string", "url": "string", "markdown": "string"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/context", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"token": "string", "url": "string", "markdown": "string"})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"token": "string", "url": "string", "markdown": "string"}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/context", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `OPTIONS` /api/v1/embed/context

**Embed Preflight**

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts preflights for origins outside CORS_ORIGINS before this runs — same as embed_mock; an external origin's browser POST still needs CORS_ORIGINS at deploy, while the SSE GET is a simple request served by reflection alone.)

```bash
curl -X OPTIONS 'https://app.opvs.ai/api/v1/embed/context' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.options(
    "https://app.opvs.ai/api/v1/embed/context",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/context", {
  method: "OPTIONS",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("OPTIONS", "https://app.opvs.ai/api/v1/embed/context", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `GET` /api/v1/embed/sse

**Embed Sse**

Open the AI SDK response stream for a validated session token. When a ``message`` is supplied the agent's reply to it streams; otherwise just an open frame so the EventSource handshake completes. ``page_url`` (optional) grounds the turn to the visitor's current page (M2.1).

**Parameters**

- `token` (query, any, optional)
- `message` (query, any, optional)
- `page_url` (query, any, optional)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/embed/sse' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/embed/sse",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/sse", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/embed/sse", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `OPTIONS` /api/v1/embed/sse

**Embed Preflight**

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts preflights for origins outside CORS_ORIGINS before this runs — same as embed_mock; an external origin's browser POST still needs CORS_ORIGINS at deploy, while the SSE GET is a simple request served by reflection alone.)

```bash
curl -X OPTIONS 'https://app.opvs.ai/api/v1/embed/sse' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.options(
    "https://app.opvs.ai/api/v1/embed/sse",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/sse", {
  method: "OPTIONS",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("OPTIONS", "https://app.opvs.ai/api/v1/embed/sse", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/embed/turn

**Embed Turn**

Run a user/widget turn and stream the agent's reply as AI SDK frames.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/turn' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "token": "string",
  "turn_id": "string",
  "input": null,
  "page_url": "string"
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/turn",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"token": "string", "turn_id": "string", "input": null, "page_url": "string"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/turn", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"token": "string", "turn_id": "string", "input": null, "page_url": "string"})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"token": "string", "turn_id": "string", "input": null, "page_url": "string"}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/turn", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `OPTIONS` /api/v1/embed/turn

**Embed Preflight**

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts preflights for origins outside CORS_ORIGINS before this runs — same as embed_mock; an external origin's browser POST still needs CORS_ORIGINS at deploy, while the SSE GET is a simple request served by reflection alone.)

```bash
curl -X OPTIONS 'https://app.opvs.ai/api/v1/embed/turn' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.options(
    "https://app.opvs.ai/api/v1/embed/turn",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/turn", {
  method: "OPTIONS",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("OPTIONS", "https://app.opvs.ai/api/v1/embed/turn", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/embed/session

**Embed Session**

Mint a public embed session token for a registered flow + origin.

**Parameters**

- `visitor_id` (query, any, optional)

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/session' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "flow_id": "string",
  "origin": "string"
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/session",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"flow_id": "string", "origin": "string"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/session", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"flow_id": "string", "origin": "string"})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"flow_id": "string", "origin": "string"}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/session", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `OPTIONS` /api/v1/embed/session

**Embed Preflight**

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts preflights for origins outside CORS_ORIGINS before this runs — same as embed_mock; an external origin's browser POST still needs CORS_ORIGINS at deploy, while the SSE GET is a simple request served by reflection alone.)

```bash
curl -X OPTIONS 'https://app.opvs.ai/api/v1/embed/session' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.options(
    "https://app.opvs.ai/api/v1/embed/session",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/session", {
  method: "OPTIONS",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("OPTIONS", "https://app.opvs.ai/api/v1/embed/session", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response

## `POST` /api/v1/embed/bind

**Embed Bind**

Client-facing hire→bind: turn a catalog pick into a live bound flow.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/bind' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "flow_id": "string",
  "profile_id": "string",
  "sp_client_id": "string",
  "sp_project_id": "string",
  "allowed_origins": [
    "string"
  ]
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/bind",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"flow_id": "string", "profile_id": "string", "sp_client_id": "string", "sp_project_id": "string", "allowed_origins": ["string"]},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/bind", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"flow_id": "string", "profile_id": "string", "sp_client_id": "string", "sp_project_id": "string", "allowed_origins": ["string"]})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"flow_id": "string", "profile_id": "string", "sp_client_id": "string", "sp_project_id": "string", "allowed_origins": ["string"]}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/bind", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PATCH` /api/v1/embed/bind/{flow_id}

**Embed Bind Update Origins**

Update a binding's origin allowlist (PAT-auth, brand-scoped).

**Parameters**

- `flow_id` (path, string, required)

**Request body**

```bash
curl -X PATCH 'https://app.opvs.ai/api/v1/embed/bind/{flow_id}' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "allowed_origins": [
    "string"
  ]
}'
```

```python
import httpx

resp = httpx.patch(
    "https://app.opvs.ai/api/v1/embed/bind/{flow_id}",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"allowed_origins": ["string"]},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/bind/{flow_id}", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"allowed_origins": ["string"]})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"allowed_origins": ["string"]}`)
	req, _ := http.NewRequest("PATCH", "https://app.opvs.ai/api/v1/embed/bind/{flow_id}", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `DELETE` /api/v1/embed/bind/{flow_id}

**Embed Unbind**

Unbind a flow — soft-disable the binding (PAT-auth, brand-scoped).

**Parameters**

- `flow_id` (path, string, required)

```bash
curl -X DELETE 'https://app.opvs.ai/api/v1/embed/bind/{flow_id}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.delete(
    "https://app.opvs.ai/api/v1/embed/bind/{flow_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/bind/{flow_id}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://app.opvs.ai/api/v1/embed/bind/{flow_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/embed/catalog/bind

**Embed Catalog Bind**

Provision (or reuse) the platform-owned demo hire for a catalog product.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/catalog/bind' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "profile_id": "string",
  "allowed_origins": [
    "string"
  ]
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/catalog/bind",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"profile_id": "string", "allowed_origins": ["string"]},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/catalog/bind", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"profile_id": "string", "allowed_origins": ["string"]})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"profile_id": "string", "allowed_origins": ["string"]}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/catalog/bind", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/embed/catalog/session

**Embed Catalog Session**

PUBLIC. Mint a demo session token for a profile that already has a binding.

**Request body**

```bash
curl -X POST 'https://app.opvs.ai/api/v1/embed/catalog/session' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "profile_id": "string",
  "visitor_id": "string"
}'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/embed/catalog/session",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"profile_id": "string", "visitor_id": "string"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/embed/catalog/session", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"profile_id": "string", "visitor_id": "string"})
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"profile_id": "string", "visitor_id": "string"}`)
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/embed/catalog/session", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## Embed Context Read

`GET https://app.opvs.ai/api/v1/embed/context`

Service-to-service read for the 1.2 gateway plugin. Auth is ``X-Admin-Key``
(the plugin, like skills-meta). ``flow_id`` + ``url`` are supplied server-side
by the plugin from ``ctx`` — never the LLM for ``flow_id``.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Context Upload

`POST https://app.opvs.ai/api/v1/embed/context`

Store the visitor's current page content for scoped-pull by the agent.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Preflight

`OPTIONS https://app.opvs.ai/api/v1/embed/context`

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts
preflights for origins outside CORS_ORIGINS before this runs — same as
embed_mock; an external origin's browser POST still needs CORS_ORIGINS at
deploy, while the SSE GET is a simple request served by reflection alone.)

## Embed Sse

`GET https://app.opvs.ai/api/v1/embed/sse`

Open the AI SDK response stream for a validated session token. When a
``message`` is supplied the agent's reply to it streams; otherwise just an
open frame so the EventSource handshake completes. ``page_url`` (optional)
grounds the turn to the visitor's current page (M2.1).

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Preflight

`OPTIONS https://app.opvs.ai/api/v1/embed/sse`

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts
preflights for origins outside CORS_ORIGINS before this runs — same as
embed_mock; an external origin's browser POST still needs CORS_ORIGINS at
deploy, while the SSE GET is a simple request served by reflection alone.)

## Embed Turn

`POST https://app.opvs.ai/api/v1/embed/turn`

Run a user/widget turn and stream the agent's reply as AI SDK frames.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Preflight

`OPTIONS https://app.opvs.ai/api/v1/embed/turn`

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts
preflights for origins outside CORS_ORIGINS before this runs — same as
embed_mock; an external origin's browser POST still needs CORS_ORIGINS at
deploy, while the SSE GET is a simple request served by reflection alone.)

## Embed Session

`POST https://app.opvs.ai/api/v1/embed/session`

Mint a public embed session token for a registered flow + origin.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Preflight

`OPTIONS https://app.opvs.ai/api/v1/embed/session`

Scoped-CORS preflight responder. (The global CORSMiddleware intercepts
preflights for origins outside CORS_ORIGINS before this runs — same as
embed_mock; an external origin's browser POST still needs CORS_ORIGINS at
deploy, while the SSE GET is a simple request served by reflection alone.)

## Embed Bind

`POST https://app.opvs.ai/api/v1/embed/bind`

Client-facing hire→bind: turn a catalog pick into a live bound flow.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Bind Update Origins

`PATCH https://app.opvs.ai/api/v1/embed/bind/{flow_id}`

Update a binding's origin allowlist (PAT-auth, brand-scoped).

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Unbind

`DELETE https://app.opvs.ai/api/v1/embed/bind/{flow_id}`

Unbind a flow — soft-disable the binding (PAT-auth, brand-scoped).

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Catalog Bind

`POST https://app.opvs.ai/api/v1/embed/catalog/bind`

Provision (or reuse) the platform-owned demo hire for a catalog product.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Embed Catalog Session

`POST https://app.opvs.ai/api/v1/embed/catalog/session`

PUBLIC. Mint a demo session token for a profile that already has a binding.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |
