> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.anthropod.in/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.anthropod.in/_mcp/server.

# Retrieve analytics configuration

GET https://anthropod.in/api/v2/conversation-analytics/configuration

Retrieve the latest saved configuration for one analytics module of your service, using the same saved configuration source as the dashboard and MCP. Includes customer-configured instructions, definitions, parameter and subparameter settings, possible answers, and scoring logic where configured. Internal runtime prompts, provider credentials and editor details are excluded. This is a read-only endpoint: drafts and updates are not supported. It returns one module without pagination or time filters. The current configuration may differ from the version used to analyze an older conversation. A module with no saved configuration returns 404. The top-level data.status is active or inactive for the whole module, independently of individual parameter statuses. Inactive modules still return their saved configuration.

Configuration follows the module structure: business_insights is keyed directly by field name; agent_feedback contains parameters, subparameters and optional criteria; custom_module contains conversation and customer sections; lead_quality contains conversation_potential and customer_potential; conversation_summary contains settings and instruction; conversation_dispositions contains dispositions and instruction; concerns_and_queries contains queries, concerns and optional training_materials; templates contains sms, email and whatsapp settings.

Reference: https://docs.anthropod.in/api-reference/conversation-analytics/get-analytics-configuration

## Authentication

- `Authorization` header (bearer token, required) — Existing private account API key from Developer Hub. Keep it on your backend.

## Request

### Query parameters

- `service_id` (string, required) — Required authorized service. Client identity is derived from the API key. Nonempty, at most 255 characters; whitespace-only values and control characters are rejected.
- `module_name` (enum, required) — Analytics module whose latest saved configuration is requested.
  - Allowed values: `agent_feedback`, `business_insights`, `concerns_and_queries`, `conversation_dispositions`, `conversation_summary`, `custom_module`, `lead_quality`, `templates`

## Response

### 200

Successful response.

- `data` (object, required) — Latest saved configuration for the requested service and module.
  - `service_id` (string, required)
  - `module_name` (enum, required)
    - Allowed values: `agent_feedback`, `business_insights`, `concerns_and_queries`, `conversation_dispositions`, `conversation_summary`, `custom_module`, `lead_quality`, `templates`
  - `version` (integer, required) — Latest saved module configuration version.
  - `status` (enum, required) — Whether the whole analytics module is enabled in the latest saved dashboard configuration. Individual parameter statuses are separate; inactive modules still return their saved settings.
    - Allowed values: `active`, `inactive`
  - `configuration` (object, required) — Customer-facing saved module configuration. Structure varies by module as described above. Fields absent from the saved configuration are omitted.
    - `parameters` (map from string to object, optional)
      - `display_name` (string, optional, nullable) — Customer-facing name of the configured field.
      - `instruction` (string, optional, nullable) — Customer-configured analysis instruction; not the assembled runtime prompt.
      - `definition` (string, optional, nullable) — Saved meaning of the configured field.
      - `description` (string, optional, nullable) — Saved descriptive text for this field.
      - `logic` (string, optional, nullable) — Saved scoring or calculation expression.
      - `logic_explanation` (string, optional, nullable) — Explanation of the saved scoring or calculation logic.
      - `output_type` (string, optional, nullable) — Saved output type, for example Yes/No/NA, Number, Categorical, Categorical - Multiple Values, Text, Date and Time, or String.
      - `status` (string, optional, nullable) — Saved field status: active, inactive or archived.
      - `tag` (string, optional, nullable) — Saved grouping label for this field.
      - `subparameter_type` (string, optional, nullable) — Saved subparameter evaluation type, such as llm_based.
      - `possible_values` (list of string, optional, nullable) — Configured output choices when the field has a finite set of answers.
      - `subparameters_used` (list of string, optional, nullable) — Names of configured subparameters used by this field.
      - `variables_used` (list of string, optional, nullable) — Names of configured variables used by the saved logic.
      - `subcategories` (list of string, optional, nullable) — Configured subcategory labels.
      - `subdispositions` (list of string, optional, nullable) — Configured subdisposition labels.
      - `weightage` (double, optional, nullable) — Saved weight used when calculating aggregate scores.
      - `threshold_score` (double, optional, nullable) — Saved score threshold used by this field.
      - `fatal` (double, optional, nullable) — Saved numeric fatal-condition flag.
      - `system` (double, optional, nullable) — Saved numeric flag identifying a system field.
      - `execution_order` (double, optional, nullable) — Saved evaluation order for this field.
      - `active` (boolean, optional) — Whether the saved field is active.
    - `subparameters` (map from string to object, optional)
      - `display_name` (string, optional, nullable) — Customer-facing name of the configured field.
      - `instruction` (string, optional, nullable) — Customer-configured analysis instruction; not the assembled runtime prompt.
      - `definition` (string, optional, nullable) — Saved meaning of the configured field.
      - `description` (string, optional, nullable) — Saved descriptive text for this field.
      - `logic` (string, optional, nullable) — Saved scoring or calculation expression.
      - `logic_explanation` (string, optional, nullable) — Explanation of the saved scoring or calculation logic.
      - `output_type` (string, optional, nullable) — Saved output type, for example Yes/No/NA, Number, Categorical, Categorical - Multiple Values, Text, Date and Time, or String.
      - `status` (string, optional, nullable) — Saved field status: active, inactive or archived.
      - `tag` (string, optional, nullable) — Saved grouping label for this field.
      - `subparameter_type` (string, optional, nullable) — Saved subparameter evaluation type, such as llm_based.
      - `possible_values` (list of string, optional, nullable) — Configured output choices when the field has a finite set of answers.
      - `subparameters_used` (list of string, optional, nullable) — Names of configured subparameters used by this field.
      - `variables_used` (list of string, optional, nullable) — Names of configured variables used by the saved logic.
      - `subcategories` (list of string, optional, nullable) — Configured subcategory labels.
      - `subdispositions` (list of string, optional, nullable) — Configured subdisposition labels.
      - `weightage` (double, optional, nullable) — Saved weight used when calculating aggregate scores.
      - `threshold_score` (double, optional, nullable) — Saved score threshold used by this field.
      - `fatal` (double, optional, nullable) — Saved numeric fatal-condition flag.
      - `system` (double, optional, nullable) — Saved numeric flag identifying a system field.
      - `execution_order` (double, optional, nullable) — Saved evaluation order for this field.
      - `active` (boolean, optional) — Whether the saved field is active.
    - `instruction` (string, optional) — Customer-configured module instruction.
    - `criteria` (map from string to any, optional) — Saved evaluation criteria, where configured.

## Errors

### 400 Bad Request Error

Bad Request

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 401 Unauthorized Error

Unauthorized

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 403 Forbidden Error

Forbidden

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 404 Not Found Error

Not Found

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 429 Too Many Requests Error

Request allowance exceeded. Retry after the returned Retry-After interval.

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 500 Internal Server Error

Internal Server Error

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

### 503 Service Unavailable Error

The feature is disabled or a required dependency is temporarily unavailable.

- `type` (string, required) — Problem type URI.
- `title` (string, required) — Standard HTTP status title.
- `status` (integer, required) — HTTP status code.
- `detail` (string, required) — Description of this occurrence.
- `code` (string, required) — Machine-readable error code.
- `request_id` (string, required) — Reference to use when contacting support.

## Examples

### Business insight definitions

**Response**

```json
{
  "data": {
    "service_id": "svc_demo_support",
    "module_name": "business_insights",
    "version": 2,
    "status": "active",
    "configuration": {
      "callback_requested": {
        "active": true,
        "display_name": "Callback requested",
        "instruction": "Return Yes if the customer explicitly requests a callback; No if they do not; NA if it cannot be determined.",
        "output_type": "Yes/No/NA",
        "possible_values": [
          "Yes",
          "No",
          "NA"
        ],
        "status": "active",
        "tag": "follow_up"
      }
    }
  }
}
```

**SDK Code**

```python Business insight definitions
import requests

url = "https://anthropod.in/api/v2/conversation-analytics/configuration"

querystring = {"module_name":"business_insights","service_id":"svc_demo_support"}

headers = {"Authorization": "Bearer <accountApiKey>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Business insight definitions
const url = 'https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support';
const options = {method: 'GET', headers: {Authorization: 'Bearer <accountApiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Business insight definitions
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <accountApiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Business insight definitions
require 'uri'
require 'net/http'

url = URI("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <accountApiKey>'

response = http.request(request)
puts response.read_body
```

```java Business insight definitions
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")
  .header("Authorization", "Bearer <accountApiKey>")
  .asString();
```

```php Business insight definitions
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support', [
  'headers' => [
    'Authorization' => 'Bearer <accountApiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Business insight definitions
using RestSharp;

var client = new RestClient("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <accountApiKey>");
IRestResponse response = client.Execute(request);
```

```swift Business insight definitions
import Foundation

let headers = ["Authorization": "Bearer <accountApiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Nested scoring and instructions

**Response**

```json
{
  "data": {
    "service_id": "svc_demo_support",
    "module_name": "agent_feedback",
    "version": 2,
    "status": "active",
    "configuration": {
      "parameters": {
        "greeting": {
          "display_name": "Greeting",
          "logic": "100 if greeting_present == 'Yes' else 0",
          "logic_explanation": "Full score when a greeting is present.",
          "output_type": "Number",
          "subparameters_used": [
            "greeting_present"
          ],
          "weightage": 20,
          "threshold_score": 80,
          "fatal": 0
        }
      },
      "subparameters": {
        "greeting_present": {
          "display_name": "Greeting present",
          "instruction": "Check whether the agent greeted the customer.",
          "output_type": "Yes/No/NA",
          "status": "active",
          "subparameter_type": "llm_based",
          "possible_values": [
            "Yes",
            "No",
            "NA"
          ],
          "system": 0
        }
      }
    }
  }
}
```

**SDK Code**

```python Nested scoring and instructions
import requests

url = "https://anthropod.in/api/v2/conversation-analytics/configuration"

querystring = {"module_name":"business_insights","service_id":"svc_demo_support"}

headers = {"Authorization": "Bearer <accountApiKey>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Nested scoring and instructions
const url = 'https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support';
const options = {method: 'GET', headers: {Authorization: 'Bearer <accountApiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Nested scoring and instructions
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <accountApiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Nested scoring and instructions
require 'uri'
require 'net/http'

url = URI("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <accountApiKey>'

response = http.request(request)
puts response.read_body
```

```java Nested scoring and instructions
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")
  .header("Authorization", "Bearer <accountApiKey>")
  .asString();
```

```php Nested scoring and instructions
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support', [
  'headers' => [
    'Authorization' => 'Bearer <accountApiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Nested scoring and instructions
using RestSharp;

var client = new RestClient("https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <accountApiKey>");
IRestResponse response = client.Execute(request);
```

```swift Nested scoring and instructions
import Foundation

let headers = ["Authorization": "Bearer <accountApiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://anthropod.in/api/v2/conversation-analytics/configuration?module_name=business_insights&service_id=svc_demo_support")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```