Start a paid analysis
qualitative_start_analysisStarts a paid, prepaid analysis package from text inputs; the whole quoted price is charged in credits immediately. Call it only after the user approved the quoted price from qualitative_quote_analysis (show price, model and effort first). Requires an API key with the runs:write scope. Pass quoted_price_credits, expected_model and expected_effort from that quote: if the price or the model changed, the call fails with quote_stale or model_changed and nothing is charged; show the new values to the user and ask again. Inputs are JSON text only (inputs.transcript: 1-10 items {name, text}; every other slot: one item), at most about 1 MB of text per call; larger inputs need the REST API with a multipart upload. It returns at once with a run_id; the analysis runs in the background, so follow it with qualitative_get_run. Do not call this tool again to check progress. Without an idempotency_key the key is derived from the exact input, so an identical call within 24 hours returns the same analysis (replayed: true) and is not charged again (after 24 hours it starts and charges a new one); to deliberately start a second identical analysis, pass a new idempotency_key. Without enough credits it answers payment_required with a link a human must open to top up.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"title": "<title>",
"preset_id": "<preset_id>",
"analysis_brief": "<analysis_brief>",
"quoted_price_credits": "<quoted_price_credits>",
"expected_model": "<expected_model>",
"expected_effort": "<expected_effort>",
"inputs": "<inputs>"
},
"name": "qualitative_start_analysis"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title of the analysis, shown in the web app. | |
| inputs | Yes | Input texts by slot: transcript 1-10 items {name, text}, every other slot one item. At most about 1 MB of text in total; larger inputs need the REST API. | |
| language | No | Analysis output language, a BCP 47 code such as en, cs or de. | en |
| preset_id | Yes | A preset id from qualitative_list_presets. | |
| analysis_brief | Yes | The research objective (required, up to 5000 characters) and optional context. | |
| expected_model | Yes | The `model` of the approved quote. | |
| expected_effort | Yes | The `effort` of the approved quote (null when the quote has none). | |
| idempotency_key | No | Optional key (printable ASCII, at most 255 characters). Omit it normally: the key is derived from the exact input, so an identical call within 24 hours returns the same analysis (`replayed`: true) and is not charged again. To deliberately start a second identical analysis, pass a new idempotency_key. | |
| report_audience | No | ||
| report_language | No | ||
| selected_reports | No | ||
| quoted_price_credits | Yes | The `price_credits` of the quote the user approved (qualitative_quote_analysis). A higher server price fails with quote_stale and charges nothing. |