---
id: config-passwordless-login-verify-pid-sse
title: "Stream PID verification status (SSE)"
description: "Establishes a Server-Sent Events (SSE) connection to monitor the PID (Person Identification Data) verification for passwordless login. The connection stays alive with `: keep-alive` comments and closes automatically on success or timeout."
sidebar_label: "Stream PID verification status (SSE)"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Stream PID verification status (SSE)</h1>

<MethodEndpoint method={"get"} path={"/v3/config/admin/authentication/oidc/user/verify/sse"}></MethodEndpoint>



Establishes a Server-Sent Events (SSE) connection to monitor the PID (Person Identification Data) verification for passwordless login. The connection stays alive with `: keep-alive` comments and closes automatically on success or timeout.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Query Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"One-time ticket for a client that cannot send the `Authorization` header, for example the browser `EventSource` API. Get the ticket with `POST /v2/config/sse-ticket`, sent with the `Authorization` header and the body `{\"path\": \"/v3/config/admin/authentication/oidc/user/verify/sse\"}`. The ticket is valid for 30 seconds and for one request to this path. An unknown, used or expired ticket gives 401. A request with the `Authorization` header needs no ticket.","in":"query","name":"ticket","required":false,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

SSE connection established.

</div><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"text/event-stream"} value={"text/event-stream"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem","marginLeft":"1rem"}}>

string

</div></ul></details></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

Bad request

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      