Run Details
Fetch a run's current progress, and once complete, the full markdown report with signals and evidence.
GET /api/v1/runs/{id}
Path Parameters
| id | Required — the run UUID returned from POST /api/v1/runs. |
Request Example
curl -X GET "https://agent.rolli.ai/api/v1/runs/550e8400-e29b-41d4-a716-446655440000" \
-H "X-ROLLI-TOKEN: your_token" \
-H "X-ROLLI-USER-ID: your_user_id" \
-H "Content-Type: application/json"
fetch("https://agent.rolli.ai/api/v1/runs/550e8400-e29b-41d4-a716-446655440000", {
method: "GET",
headers: {
"X-ROLLI-TOKEN": "your_token",
"X-ROLLI-USER-ID": "your_user_id",
"Content-Type": "application/json"
},
})
.then(res => res.json())
.then(console.log);
require "net/http"
require "uri"
require "json"
uri = URI("https://agent.rolli.ai/api/v1/runs/550e8400-e29b-41d4-a716-446655440000")
req = Net::HTTP::Get.new(uri)
req["X-ROLLI-TOKEN"] = "your_token"
req["X-ROLLI-USER-ID"] = "your_user_id"
req["Content-Type"] = "application/json"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(req)
end
puts res.body
import requests
import json
url = "https://agent.rolli.ai/api/v1/runs/550e8400-e29b-41d4-a716-446655440000"
headers = {
"X-ROLLI-TOKEN": "your_token",
"X-ROLLI-USER-ID": "your_user_id",
"Content-Type": "application/json"
}response = requests.get(url, headers=headers)
print(response.json())
Response — Running
While the run is in progress, progress reports the current phase and tool.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "running",
"question": "What is being said about Tesla battery recalls?",
"mode": "trend_briefing",
"parent_run_id": null,
"rolli_user_id": "user-123",
"created_at": "2026-05-19T10:30:00Z",
"progress": {
"percentage": 45,
"phase": "Polling",
"step_label": "Polling keyword search",
"current_tool": "rolliq_get_keyword_search"
},
"result": null,
"usage": null
}
Response — Completed
Once complete, result contains the report and usage contains token/credit metrics.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"question": "What is being said about Tesla battery recalls?",
"mode": "trend_briefing",
"parent_run_id": null,
"rolli_user_id": "user-123",
"created_at": "2026-05-19T10:30:00Z",
"progress": null,
"result": {
"confidence_level": "high",
"signals": [
{
"severity": "high",
"label": "Safety concerns widespread",
"description": "Multiple reports of battery malfunction in recent months..."
}
],
"evidence_links": [
"https://twitter.com/example/status/123",
"https://reddit.com/r/teslamotors/comments/abc"
],
"report_markdown": "# Tesla Battery Recall Analysis\n\n**Confidence: High**\n\n...",
"report_html": "<h1>Tesla Battery Recall Analysis</h1>..."
},
"usage": {
"input_tokens": 8942,
"output_tokens": 3421,
"duration_ms": 45230,
"cost_usd": 0.087,
"available_credits": 1000,
"credits_used": 5
}
}
Status Values
| pending | Queued, waiting for execution. |
| running | The agent is reasoning and calling tools. progress is populated. |
| completed | Report ready. result and usage are populated. |
| failed | Terminal error — see error field. |
| waiting | Rolli IQ backend temporarily unavailable. The run auto-resumes every 2 minutes (up to 10 attempts). |
404 Not Found is returned for runs created outside the API (e.g., browser-initiated runs).