LendWorksLendWorksDocs

SSE Streaming

Watch document processing in real-time using Server-Sent Events without polling.

Stream Deal Events

Instead of polling for deal status, use SSE streaming to receive real-time events as the pipeline processes documents. Events fire for each stage transition, progress update, and completion.

TypeScript
for await (const event of client.events.stream(12345)) {
  switch (event.event) {
    case "stage":
      console.log(`Processing: ${event.data}`);
      // "classifying" → "extracting" → "screening" → "scoring"
      break;
    case "progress":
      const progress = event.json();
      console.log(`Progress: ${progress.percent}%`);
      break;
    case "document_completed":
      const docData = event.json();
      console.log(`Document ${docData.document_id} completed`);
      break;
    case "complete":
      console.log("Analysis complete!");
      break;
    case "error":
      console.error(`Error: ${event.data}`);
      break;
  }
}
Python
for event in client.events.stream(12345):
    if event.event == "stage":
        print(f"Processing: {event.data}")
    elif event.event == "progress":
        progress = event.json()
        print(f"Progress: {progress['percent']}%")
    elif event.event == "complete":
        print("Analysis complete!")
    elif event.event == "error":
        print(f"Error: {event.data}")

Stream a Specific Document

TypeScript
for await (const event of client.events.stream(12345, { documentId: 67890 })) {
  console.log(event.event, event.data);
}
Python
for event in client.events.stream(12345, document_id=67890):
    print(event.event, event.data)

Organization-Wide Stream

Monitor all events across your entire organization in a single connection. Useful for dashboards and real-time monitoring.

TypeScript
for await (const event of client.events.streamOrg()) {
  const data = event.json();
  console.log(`Org event: ${event.event}`, data);
}
Python
for event in client.events.stream_org():
    data = event.json()
    print(f"Org event: {event.event}", data)

Batch Stream

TypeScript
for await (const event of client.events.streamBatch("batch_abc123")) {
  console.log(event.event, event.json());
}
Python
for event in client.events.stream_batch("batch_abc123"):
    print(event.event, event.json())

Stream Event Types

EventDescription
stagePipeline stage transition (classifying, extracting, screening, scoring)
progressPercentage completion update with { percent: number }
document_completedA single document has finished processing
completeAll processing is done — deal is ready
errorAn error occurred during processing