Skip to main content
POST
Get Conversation Logs
What it does: Returns a paginated list of past calls. Use it to find conversationId values, then call Get Conversation Statistics for outcomes and full transcripts.
Why POST and not GET? This endpoint searches conversations using filters — date range, call status, search term, pagination — that belong in the request body, not the URL. A GET request cannot carry a JSON filter payload, so we use POST /v1/conversations/logs with filters in the body and only botId + environment on the query string. Think of it as search conversations with filters, not a simple list fetch.

Required Permission

conversations

Minimum working example

Copy this first. Add ?environment=development unless your API key has production access.
Pick conversationId from response.data[], then call Stats:

Logs vs Stats — which one do I need?

Parameters

Query string

Request body

Additional examples

Search by conversation ID

Filter by agent and date range

Response

Success (200)

What each field means

Empty results (200)

Edge cases

Errors

403 Forbidden
Save the requestId from every response. You will need it if you contact Gnani support to trace a specific request.

Authorizations

x-api-key
string
header
required

API key with 'conversations' permission

Query Parameters

botId
string

Filter logs to a specific agent.

environment
enum<string>

Filter by environment.

Available options:
development,
staging,
production

Body

application/json
pageNo
integer
required

Page number to retrieve.

Required range: x >= 1
Example:

1

pageSize
integer
required

Number of conversations per page (1–100).

Required range: 1 <= x <= 100
Example:

10

searchTerm
string

Free-text search across conversation records.

filter
object

Response

Conversations retrieved successfully

status
string
Example:

"success"

requestId
string
message
string
Example:

"Conversations retrieved successfully"

response
object