> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt.

# Generate test cases

POST https://api.synthflow.ai/v2/simulation_cases/generate
Content-Type: application/json

Generate test cases for an agent. Supports both custom prompt and flow designer agents. You can optionally specify scenarios to ensure the generated tests cover specific situations. The response is streamed as NDJSON, providing progress and results incrementally.

Reference: https://docs.synthflow.ai/api-reference/platform-api/simulations/generate-simulation-cases

## Authentication

- `Authorization` header (bearer token, required)

## Servers

- `https://api.synthflow.ai/v2` (Global, default)
- `https://api.us.synthflow.ai/v2` (United States)
- `https://api.eu.synthflow.ai/v2` (European Union)

## Request

### Body (application/json)

- `agent_id` (string, required) — ID of the agent used to generate cases.
- `include_tests` (list of enum, required) — Tests to include in the generated cases.
  - Allowed values: `csat_score`, `accuracy_of_responses`, `script_compliance`, `angry_user`, `repetitive_phrases`, `conversational_naturalness`, `task_completion`
- `suite_id` (string, optional) — ID of the simulation suite to add generated cases to.

## Response

### 200

200

- `string`

## Examples

**Request**

```json
{
  "agent_id": "1726005822670x239735712159542050",
  "include_tests": [
    "csat_score",
    "task_completion",
    "accuracy_of_responses"
  ]
}
```

**Response**

```json
{
  "status": "ok"
}
```

**SDK Code**

```python
import requests

url = "https://api.synthflow.ai/v2/simulation_cases/generate"

payload = {
    "agent_id": "1726005822670x239735712159542050",
    "include_tests": ["csat_score", "task_completion", "accuracy_of_responses"]
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```go
package main

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

func main() {

	url := "https://api.synthflow.ai/v2/simulation_cases/generate"

	payload := strings.NewReader("{\n  \"agent_id\": \"1726005822670x239735712159542050\",\n  \"include_tests\": [\n    \"csat_score\",\n    \"task_completion\",\n    \"accuracy_of_responses\"\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/simulation_cases/generate")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"agent_id\": \"1726005822670x239735712159542050\",\n  \"include_tests\": [\n    \"csat_score\",\n    \"task_completion\",\n    \"accuracy_of_responses\"\n  ]\n}"

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

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/simulation_cases/generate")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"agent_id\": \"1726005822670x239735712159542050\",\n  \"include_tests\": [\n    \"csat_score\",\n    \"task_completion\",\n    \"accuracy_of_responses\"\n  ]\n}")
  .asString();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/simulation_cases/generate");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"agent_id\": \"1726005822670x239735712159542050\",\n  \"include_tests\": [\n    \"csat_score\",\n    \"task_completion\",\n    \"accuracy_of_responses\"\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "agent_id": "1726005822670x239735712159542050",
  "include_tests": ["csat_score", "task_completion", "accuracy_of_responses"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/simulation_cases/generate")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```