Skip to content

REST API ​

DeLive exposes a local REST API on port 23456 when the Open API is enabled in Settings.

INFO

If port 23456 is taken, DeLive tries 23457–23460 and then any free port. The Open API panel in Settings shows the port actually in use.

Base URL ​

http://localhost:23456/api/v1

Authentication ​

Include the token in the Authorization header:

Authorization: Bearer <your-token>

See Authentication for details.

Endpoints ​

GET /health ​

Health check. Always accessible, even when the API is disabled.

bash
curl http://localhost:23456/api/v1/health
json
{
  "status": "ok",
  "version": "1.7.0",
  "apiEnabled": true,
  "liveClients": 0
}

GET /sessions ​

List sessions with optional filtering and pagination.

Query Parameters:

ParameterTypeDescription
searchstringCase-insensitive search in title and transcript
limitnumberMax sessions to return (default: 20)
offsetnumberPagination offset (default: 0)
topicIdstringFilter by topic ID
statusstringFilter by status (recording, completed, interrupted)
bash
curl "http://localhost:23456/api/v1/sessions?search=standup&limit=5"
json
{
  "sessions": [
    {
      "id": "abc123",
      "title": "Daily Standup",
      "date": "2026-04-17",
      "time": "09:30",
      "status": "completed",
      "duration": 900000,
      "providerId": "soniox",
      "transcriptLength": 4523,
      "hasSummary": true,
      "topicId": null,
      "tagIds": ["tag1"]
    }
  ],
  "total": 1,
  "limit": 5,
  "offset": 0
}

GET /sessions/:id ​

Full session detail including transcript, AI summary, mind map, and Q&A history.

bash
curl http://localhost:23456/api/v1/sessions/abc123

GET /sessions/:id/transcript ​

Plain text transcript only. Includes corrected transcript when AI correction has been applied.

bash
curl http://localhost:23456/api/v1/sessions/abc123/transcript
json
{
  "sessionId": "abc123",
  "transcript": "Good morning everyone...",
  "translatedTranscript": null,
  "correctedTranscript": "Good morning, everyone..."
}

GET /sessions/:id/summary ​

AI summary, action items, keywords, and mind map.

bash
curl http://localhost:23456/api/v1/sessions/abc123/summary
json
{
  "id": "abc123",
  "title": "Daily Standup",
  "postProcess": {
    "summary": "The team discussed...",
    "actionItems": ["Review PR #42", "Update docs"],
    "keywords": ["sprint", "deployment"],
    "chapters": [],
    "status": "success"
  },
  "mindMap": {
    "markdown": "# Daily Standup\n## Topics\n...",
    "status": "success"
  }
}

GET /topics ​

List all topics.

bash
curl http://localhost:23456/api/v1/topics
json
{
  "topics": [
    {
      "id": "topic1",
      "name": "Project Alpha",
      "emoji": "🚀",
      "description": "Main project workspace",
      "sessionCount": 12
    }
  ]
}

GET /tags ​

List all tags.

bash
curl http://localhost:23456/api/v1/tags

GET /status ​

Current recording status and app info.

bash
curl http://localhost:23456/api/v1/status
json
{
  "version": "1.7.0",
  "recording": false,
  "currentSessionId": null,
  "currentProvider": null,
  "liveClients": 0
}

Error Responses ​

StatusMeaning
403Open API is disabled
401Invalid or missing Bearer token
404Session not found
500Internal server error

IPC Timeout ​

API requests that require data from the renderer process have a 5-second timeout. If the renderer does not respond in time, the API returns empty/default data with a 200 status.

Released under the Apache 2.0 License.