LiveLike Genie Platform API

Genie API

Complete reference for the LiveLike Genie platform API. Every operation below includes the auth requirement, request contract, response contract, example payloads, and the next action your client should take.

Base URLs

API root
https://genie.livelike.ai/api/v1/
Browsable API
https://genie.livelike.ai/api/v1/ Open Browsable API
OpenAPI JSON
https://genie.livelike.ai/api/v1/openapi.json Open OpenAPI JSON
OpenAPI YAML
https://genie.livelike.ai/api/v1/openapi.yml Open OpenAPI YAML
Docs
https://genie.livelike.ai/api/v1/docs

Authentication

  • Bearer token: Authorization: Bearer <blast_access_token>

Section

Sessions

Create, list, inspect, rename, stream, stop, and delete chat sessions.

/api/v1/sessions
GET /api/v1/sessions

List sessions

Return the authenticated user's sessions in reverse activity order.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body. Optional query params: page for page-number pagination and search for case-insensitive matching against the session title or any message text in the session.

Basic HTTP Request
GET /api/v1/sessions
Request Shape

No request body.

Request Example
GET /api/v1/sessions?page=1&search=cat
Authorization: Bearer <blast_access_token>

Response

200 OK with a paginated session collection.

Response Shape
{
  "count": "<integer>",
  "next": "<absolute page URL or null>",
  "previous": "<absolute page URL or null>",
  "results": [
    {
      "uuid": "<session UUID>",
      "url": "<absolute session URL>",
      "title": "<session title>",
      "user": {
        "uuid": "<user UUID>",
        "name": "<display name>"
      },
      "messages_url": "<absolute messages URL>",
      "metadata": "<JSON object>",
      "created_at": "<ISO 8601 timestamp>",
      "updated_at": "<ISO 8601 timestamp>"
    }
  ]
}
Response Example
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "37290857-0aff-416e-9693-77acd04e28c5",
      "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5",
      "title": "5 random cat names",
      "user": {
        "uuid": "61cb3911-3662-4d85-bd93-9d8e2c3892cb",
        "name": "Human User"
      },
      "messages_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages",
      "metadata": {
        "source": "api-docs"
      },
      "created_at": "2026-04-15T16:17:22.398531Z",
      "updated_at": "2026-04-15T16:18:04.117204Z"
    }
  ]
}
POST /api/v1/sessions

Create a session

Create a new session from the first user message and immediately start the first agent run.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send the first user message in text. title is optional; if set, title is not auto-generated.

Basic HTTP Request
POST /api/v1/sessions
Request Shape
{
  "text": "<required initial user message>",
  "title": "<optional custom title; if set, title is not auto-generated>"
}
Request Example
POST /api/v1/sessions
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "text": "Generate 5 random cat names",
  "title": ""
}

Response

201 Created with the new session UUID, the live stream URL, and the messages collection URL for later follow-up turns. Immediately subscribe to the returned `stream_url`.

Response Shape
{
  "uuid": "<session UUID>",
  "stream_url": "<absolute session stream URL>",
  "messages_url": "<absolute session messages URL>"
}
Response Example
{
  "uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "stream_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/stream",
  "messages_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages"
}

What To Do Next

Immediately subscribe to `stream_url` to receive the agent response.

GET /api/v1/sessions/{session_uuid}

Retrieve one session

Load the session resource and follow messages_url to fetch the saved transcript.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/sessions/{session_uuid}
Request Shape

No request body.

Request Example
GET /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5
Authorization: Bearer <blast_access_token>

Response

200 OK with the session resource.

Response Shape
{
  "uuid": "<session UUID>",
  "url": "<absolute session URL>",
  "title": "<session title>",
  "user": {
    "uuid": "<user UUID>",
    "name": "<display name>"
  },
  "messages_url": "<absolute messages URL>",
  "metadata": "<JSON object>",
  "created_at": "<ISO 8601 timestamp>",
  "updated_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5",
  "title": "5 random cat names",
  "user": {
    "uuid": "61cb3911-3662-4d85-bd93-9d8e2c3892cb",
    "name": "Human User"
  },
  "messages_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages",
  "metadata": {
    "source": "api-docs"
  },
  "created_at": "2026-04-15T16:17:22.398531Z",
  "updated_at": "2026-04-15T16:18:04.117204Z"
}
PUT PATCH
/api/v1/sessions/{session_uuid}

Update the session title.

Only the title field is writable on this endpoint.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send a new title string. Any other field is rejected.

Basic HTTP Request
PUT /api/v1/sessions/{session_uuid}
PATCH /api/v1/sessions/{session_uuid}
Request Shape
{
  "title": "<new session title>"
}
Request Example
PATCH /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "title": "Playful cat names"
}

Response

200 OK with the updated session resource, including messages_url.

Response Shape
{
  "uuid": "<session UUID>",
  "url": "<absolute session URL>",
  "title": "<session title>",
  "user": {
    "uuid": "<user UUID>",
    "name": "<display name>"
  },
  "messages_url": "<absolute messages URL>",
  "metadata": "<JSON object>",
  "created_at": "<ISO 8601 timestamp>",
  "updated_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5",
  "title": "Playful cat names",
  "user": {
    "uuid": "61cb3911-3662-4d85-bd93-9d8e2c3892cb",
    "name": "Human User"
  },
  "messages_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages",
  "metadata": {
    "source": "api-docs"
  },
  "created_at": "2026-04-15T16:17:22.398531Z",
  "updated_at": "2026-04-15T16:18:04.117204Z"
}
GET /api/v1/sessions/{session_uuid}/stream

Subscribe to a session stream

Stream agent output and run-state parts for one session.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Open an SSE connection with Accept: text/event-stream. Reconnects after the stream has fully stopped can return 204 No Content to prevent retry loops.

Basic HTTP Request
GET /api/v1/sessions/{session_uuid}/stream
Request Shape

No request body.

Request Example
GET /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/stream
Accept: text/event-stream
Authorization: Bearer <blast_access_token>
Cache-Control: no-cache

Response

200 OK with text/event-stream while events remain. Reconnects can return 204 No Content when the stream is internally stopped and there is nothing left to deliver.

Response Shape
: ok

retry: 0

id: <integer>
data: {"type":"text-start","id":"pending-message-<message UUID>"}

id: <integer>
data: {"type":"text-delta","id":"pending-message-<message UUID>","delta":"<text chunk>"}

id: <integer>
data: {"type":"finish"}
Response Example
: ok

retry: 0

id: 13
data: {"type":"text-start","id":"pending-message-e04b3a29-5a07-49e3-b180-279c99383220"}

id: 14
data: {"type":"text-delta","id":"pending-message-e04b3a29-5a07-49e3-b180-279c99383220","delta":"Miso, "}

id: 15
data: {"type":"text-delta","id":"pending-message-e04b3a29-5a07-49e3-b180-279c99383220","delta":"Juniper, Nimbus, Pickles, and Poppy."}

id: 16
data: {"type":"finish"}
POST /api/v1/sessions/{session_uuid}/stream/stop

Request stream stop

Request early cancellation of the active run for this session.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
POST /api/v1/sessions/{session_uuid}/stream/stop
Request Shape

No request body.

Request Example
POST /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/stream/stop
Authorization: Bearer <blast_access_token>

Response

200 OK with the session UUID and a boolean showing whether a stop was requested.

Response Shape
{
  "uuid": "<session UUID>",
  "stopped": true
}
Response Example
{
  "uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "stopped": true
}
DELETE /api/v1/sessions/{session_uuid}

Delete a session

Delete the session and its related messages, feedback, checkpoints, and memory rows.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
DELETE /api/v1/sessions/{session_uuid}
Request Shape

No request body.

Request Example
DELETE /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5
Authorization: Bearer <blast_access_token>

Response

204 No Content.

Response Shape

No response body.

Response Example

No response body.

Section

Message Endpoints

List, create, inspect, update, and delete messages inside one session.

/api/v1/sessions/{session_uuid}/messages
GET /api/v1/sessions/{session_uuid}/messages

List messages

Return the saved transcript for one session in ascending message order.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body. Optional page query param for page-number pagination.

Basic HTTP Request
GET /api/v1/sessions/{session_uuid}/messages
Request Shape

No request body.

Request Example
GET /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages?page=1
Authorization: Bearer <blast_access_token>

Response

200 OK with a paginated message collection.

Response Shape
{
  "count": "<integer>",
  "next": "<absolute page URL or null>",
  "previous": "<absolute page URL or null>",
  "results": [
    {
      "uuid": "<message UUID>",
      "url": "<absolute message URL>",
      "session_uuid": "<session UUID>",
      "feedback_url": "<absolute feedback URL>",
      "feedback": {
        "url": "<absolute feedback URL>",
        "rating": "<positive or negative>",
        "body": "<text>",
        "created_at": "<ISO 8601 timestamp>"
      },
      "sender_role": "<user or agent>",
      "text": "<message text>",
      "temperature": "<number or null>",
      "model": {
        "provider": "<provider slug>",
        "model_id": "<provider model ID>"
      },
      "metadata": "<JSON object>",
      "created_at": "<ISO 8601 timestamp>"
    }
  ]
}
Response Example
{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "6a2d0f84-857b-4b10-a020-1d7286213b32",
      "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32",
      "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
      "feedback_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32/feedback",
      "feedback": null,
      "sender_role": "user",
      "text": "Generate 5 random cat names",
      "temperature": 0.0,
      "model": null,
      "metadata": {
        "source": "api-docs"
      },
      "created_at": "2026-04-15T16:17:22.398531Z"
    },
    {
      "uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
      "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220",
      "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
      "feedback_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
      "feedback": {
        "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
        "rating": "positive",
        "body": "Accurate",
        "created_at": "2026-04-15T16:17:22.398531Z"
      },
      "sender_role": "agent",
      "text": "Miso, Juniper, Nimbus, Pickles, and Poppy.",
      "temperature": 0.0,
      "model": {
        "provider": "bedrock",
        "model_id": "claude-sonnet-4"
      },
      "metadata": {
        "source": "api-docs"
      },
      "created_at": "2026-04-15T16:18:04.117204Z"
    }
  ]
}
POST /api/v1/sessions/{session_uuid}/messages

Create message

Append one more user turn to an existing session and start the next agent run.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send a text field with the next user message.

Basic HTTP Request
POST /api/v1/sessions/{session_uuid}/messages
Request Shape
{
  "text": "<required user message>"
}
Request Example
POST /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "text": "Give me 5 more cat names with a playful tone."
}

Response

201 Created with the final agent message UUID for this turn and the stream URL for the in-flight response.

Response Shape
{
  "uuid": "<agent message UUID>",
  "stream_url": "<absolute session stream URL>"
}
Response Example
{
  "uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
  "stream_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/stream"
}

What To Do Next

Immediately subscribe to `stream_url` to receive the agent response.

GET /api/v1/sessions/{session_uuid}/messages/{message_uuid}

Retrieve message

Load one saved message, including its feedback_url and embedded feedback when present.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/sessions/{session_uuid}/messages/{message_uuid}
Request Shape

No request body.

Request Example
GET /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220
Authorization: Bearer <blast_access_token>

Response

200 OK with the message resource.

Response Shape
{
  "uuid": "<message UUID>",
  "url": "<absolute message URL>",
  "session_uuid": "<session UUID>",
  "feedback_url": "<absolute feedback URL>",
  "feedback": {
    "url": "<absolute feedback URL>",
    "rating": "<positive or negative>",
    "body": "<text>",
    "created_at": "<ISO 8601 timestamp>"
  },
  "sender_role": "<user or agent>",
  "text": "<message text>",
  "temperature": "<number or null>",
  "model": {
    "provider": "<provider slug>",
    "model_id": "<provider model ID>"
  },
  "metadata": "<JSON object>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220",
  "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "feedback_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
  "feedback": {
    "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
    "rating": "positive",
    "body": "Accurate",
    "created_at": "2026-04-15T16:17:22.398531Z"
  },
  "sender_role": "agent",
  "text": "Miso, Juniper, Nimbus, Pickles, and Poppy.",
  "temperature": 0.0,
  "model": {
    "provider": "bedrock",
    "model_id": "claude-sonnet-4"
  },
  "metadata": {
    "source": "api-docs"
  },
  "created_at": "2026-04-15T16:18:04.117204Z"
}
PUT PATCH
/api/v1/sessions/{session_uuid}/messages/{message_uuid}

Update message

Update writable message fields like sender_role, text, temperature, model, and metadata.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Read-only fields like uuid, url, session_uuid, feedback_url, feedback, and created_at cannot be changed.

Basic HTTP Request
PUT /api/v1/sessions/{session_uuid}/messages/{message_uuid}
PATCH /api/v1/sessions/{session_uuid}/messages/{message_uuid}
Request Shape
{
  "sender_role": "<user or agent>",
  "text": "<message text>",
  "temperature": "<number or null>",
  "model": {
    "provider": "<provider slug>",
    "model_id": "<provider model ID>"
  },
  "metadata": "<JSON object>"
}
Request Example
PATCH /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "text": "Generate 5 random cat names and keep them short.",
  "temperature": 0.0,
  "model": {
    "provider": "bedrock",
    "model_id": "claude-sonnet-4"
  },
  "metadata": {
    "source": "api-docs"
  }
}

Response

200 OK with the updated message resource.

Response Shape
{
  "uuid": "<message UUID>",
  "url": "<absolute message URL>",
  "session_uuid": "<session UUID>",
  "feedback_url": "<absolute feedback URL>",
  "feedback": "<feedback object or null>",
  "sender_role": "<user or agent>",
  "text": "<message text>",
  "temperature": "<number or null>",
  "model": {
    "provider": "<provider slug>",
    "model_id": "<provider model ID>"
  },
  "metadata": "<JSON object>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "uuid": "6a2d0f84-857b-4b10-a020-1d7286213b32",
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32",
  "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "feedback_url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32/feedback",
  "feedback": null,
  "sender_role": "user",
  "text": "Generate 5 random cat names and keep them short.",
  "temperature": 0.0,
  "model": {
    "provider": "bedrock",
    "model_id": "claude-sonnet-4"
  },
  "metadata": {
    "source": "api-docs"
  },
  "created_at": "2026-04-15T16:17:22.398531Z"
}
DELETE /api/v1/sessions/{session_uuid}/messages/{message_uuid}

Delete message

Delete one saved message from the session transcript.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
DELETE /api/v1/sessions/{session_uuid}/messages/{message_uuid}
Request Shape

No request body.

Request Example
DELETE /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/6a2d0f84-857b-4b10-a020-1d7286213b32
Authorization: Bearer <blast_access_token>

Response

204 No Content.

Response Shape

No response body.

Response Example

No response body.

Section

Feedback

Read, create, replace, update, or delete feedback for one agent message.

/api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
GET /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback

Retrieve feedback

Load the feedback resource for one agent message.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
Request Shape

No request body.

Request Example
GET /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback
Authorization: Bearer <blast_access_token>

Response

200 OK with the feedback resource.

Response Shape
{
  "url": "<absolute feedback URL>",
  "session_uuid": "<session UUID>",
  "message_uuid": "<message UUID>",
  "rating": "<positive or negative>",
  "body": "<text>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
  "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "message_uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
  "rating": "positive",
  "body": "Accurate",
  "created_at": "2026-04-15T16:17:22.398531Z"
}
POST /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback

Create or replace feedback

Create feedback for an agent message. If feedback already exists for that message, POST replaces it.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send rating and body. Agent messages only.

Basic HTTP Request
POST /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
Request Shape
{
  "rating": "<positive or negative>",
  "body": "<feedback text>"
}
Request Example
POST /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "rating": "positive",
  "body": "Accurate"
}

Response

201 Created the first time, or 200 OK if POST replaced an existing feedback row.

Response Shape
{
  "url": "<absolute feedback URL>",
  "session_uuid": "<session UUID>",
  "message_uuid": "<message UUID>",
  "rating": "<positive or negative>",
  "body": "<text>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
  "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "message_uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
  "rating": "positive",
  "body": "Accurate",
  "created_at": "2026-04-15T16:17:22.398531Z"
}
PUT PATCH
/api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback

Update feedback

Update the rating and body for existing feedback on an agent message.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send updated rating and/or body.

Basic HTTP Request
PUT /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
PATCH /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
Request Shape
{
  "rating": "<positive or negative>",
  "body": "<feedback text>"
}
Request Example
PATCH /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "body": "Accurate and concise"
}

Response

200 OK with the updated feedback resource.

Response Shape
{
  "url": "<absolute feedback URL>",
  "session_uuid": "<session UUID>",
  "message_uuid": "<message UUID>",
  "rating": "<positive or negative>",
  "body": "<text>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "url": "https://genie.livelike.ai/api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback",
  "session_uuid": "37290857-0aff-416e-9693-77acd04e28c5",
  "message_uuid": "e04b3a29-5a07-49e3-b180-279c99383220",
  "rating": "positive",
  "body": "Accurate and concise",
  "created_at": "2026-04-15T16:17:22.398531Z"
}
DELETE /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback

Delete feedback

Delete existing feedback for an agent message.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
DELETE /api/v1/sessions/{session_uuid}/messages/{message_uuid}/feedback
Request Shape

No request body.

Request Example
DELETE /api/v1/sessions/37290857-0aff-416e-9693-77acd04e28c5/messages/e04b3a29-5a07-49e3-b180-279c99383220/feedback
Authorization: Bearer <blast_access_token>

Response

204 No Content.

Response Shape

No response body.

Response Example

No response body.

Section

Model Catalog

List and create model providers and provider model IDs.

/api/v1/model-providers
GET /api/v1/model-providers

List model providers

Return all configured model providers.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/model-providers
Request Shape

No request body.

Request Example
GET /api/v1/model-providers
Authorization: Bearer <blast_access_token>

Response

200 OK with a list of provider resources.

Response Shape
[
  {
    "name": "<provider name>",
    "slug": "<provider slug>",
    "url": "<absolute provider URL>",
    "created_at": "<ISO 8601 timestamp>"
  }
]
Response Example
[
  {
    "name": "Bedrock",
    "slug": "bedrock",
    "url": "https://genie.livelike.ai/api/v1/model-providers/bedrock",
    "created_at": "2026-04-15T15:58:01.155255Z"
  }
]
POST /api/v1/model-providers

Create a model provider

Create one provider. The API derives slug from name.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send a provider name.

Basic HTTP Request
POST /api/v1/model-providers
Request Shape
{
  "name": "<provider name>"
}
Request Example
POST /api/v1/model-providers
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "name": "Bedrock"
}

Response

201 Created with the provider resource.

Response Shape
{
  "name": "<provider name>",
  "slug": "<provider slug>",
  "url": "<absolute provider URL>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "name": "Bedrock",
  "slug": "bedrock",
  "url": "https://genie.livelike.ai/api/v1/model-providers/bedrock",
  "created_at": "2026-04-15T15:58:01.155255Z"
}
GET /api/v1/model-providers/{slug}

Retrieve one model provider

Load one provider resource by slug.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/model-providers/{slug}
Request Shape

No request body.

Request Example
GET /api/v1/model-providers/bedrock
Authorization: Bearer <blast_access_token>

Response

200 OK with the provider resource.

Response Shape
{
  "name": "<provider name>",
  "slug": "<provider slug>",
  "url": "<absolute provider URL>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "name": "Bedrock",
  "slug": "bedrock",
  "url": "https://genie.livelike.ai/api/v1/model-providers/bedrock",
  "created_at": "2026-04-15T15:58:01.155255Z"
}
GET /api/v1/model-ids

List model IDs

Return all configured provider model IDs.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/model-ids
Request Shape

No request body.

Request Example
GET /api/v1/model-ids
Authorization: Bearer <blast_access_token>

Response

200 OK with a list of model ID resources.

Response Shape
[
  {
    "provider": "<provider slug>",
    "model_id": "<provider model ID>",
    "url": "<absolute model ID URL>",
    "created_at": "<ISO 8601 timestamp>"
  }
]
Response Example
[
  {
    "provider": "bedrock",
    "model_id": "claude-sonnet-4",
    "url": "https://genie.livelike.ai/api/v1/model-ids/7",
    "created_at": "2026-04-15T15:58:24.912882Z"
  }
]
POST /api/v1/model-ids

Create a model ID

Create one provider model ID using the provider slug.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

Send the provider slug and model identifier.

Basic HTTP Request
POST /api/v1/model-ids
Request Shape
{
  "provider": "<provider slug>",
  "model_id": "<provider model ID>"
}
Request Example
POST /api/v1/model-ids
Content-Type: application/json
Authorization: Bearer <blast_access_token>

{
  "provider": "bedrock",
  "model_id": "claude-sonnet-4"
}

Response

201 Created with the model ID resource.

Response Shape
{
  "provider": "<provider slug>",
  "model_id": "<provider model ID>",
  "url": "<absolute model ID URL>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "provider": "bedrock",
  "model_id": "claude-sonnet-4",
  "url": "https://genie.livelike.ai/api/v1/model-ids/7",
  "created_at": "2026-04-15T15:58:24.912882Z"
}
GET /api/v1/model-ids/{pk}

Retrieve one model ID

Load one provider model ID by primary key.

Auth

Required. Accepts Authorization: Bearer <blast_access_token> or a session cookie.

Request

No request body.

Basic HTTP Request
GET /api/v1/model-ids/{pk}
Request Shape

No request body.

Request Example
GET /api/v1/model-ids/7
Authorization: Bearer <blast_access_token>

Response

200 OK with the model ID resource.

Response Shape
{
  "provider": "<provider slug>",
  "model_id": "<provider model ID>",
  "url": "<absolute model ID URL>",
  "created_at": "<ISO 8601 timestamp>"
}
Response Example
{
  "provider": "bedrock",
  "model_id": "claude-sonnet-4",
  "url": "https://genie.livelike.ai/api/v1/model-ids/7",
  "created_at": "2026-04-15T15:58:24.912882Z"
}