Retrieve all requests created by your API key with status, response data, and performance metrics
GET
/
v1
/
api
/
requests
# Get all requestscurl -X GET https://api.hitl.sh/v1/api/requests \ -H "Authorization: Bearer your_api_key_here"# Get pending requests onlycurl -X GET "https://api.hitl.sh/v1/api/requests?status=pending" \ -H "Authorization: Bearer your_api_key_here"# Get high priority requests with paginationcurl -X GET "https://api.hitl.sh/v1/api/requests?priority=high&limit=20&offset=0" \ -H "Authorization: Bearer your_api_key_here"
import requestsdef get_requests(status=None, priority=None, loop_id=None, limit=50, offset=0): """Get requests with optional filtering""" url = "https://api.hitl.sh/v1/api/requests" headers = {"Authorization": "Bearer your_api_key_here"} params = {"limit": limit, "offset": offset} if status: params["status"] = status if priority: params["priority"] = priority if loop_id: params["loop_id"] = loop_id response = requests.get(url, headers=headers, params=params) return response.json()# Get all requestsall_requests = get_requests()# Get pending requestspending_requests = get_requests(status="pending")# Get high priority requestshigh_priority = get_requests(priority="high")print(f"Total requests: {all_requests['data']['total']}")print(f"Pending requests: {len([r for r in all_requests['data']['requests'] if r['status'] == 'pending'])}")
const axios = require('axios');class RequestsAPI { constructor(apiKey) { this.apiKey = apiKey; this.baseURL = 'https://api.hitl.sh/v1'; } async getRequests(filters = {}) { const params = new URLSearchParams(); // Add filters if (filters.status) params.append('status', filters.status); if (filters.priority) params.append('priority', filters.priority); if (filters.loop_id) params.append('loop_id', filters.loop_id); if (filters.limit) params.append('limit', filters.limit); if (filters.offset) params.append('offset', filters.offset); if (filters.sort) params.append('sort', filters.sort); const response = await axios.get(`${this.baseURL}/requests?${params}`, { headers: { 'Authorization': `Bearer ${this.apiKey}` } }); return response.data; } async getAllRequests() { let allRequests = []; let offset = 0; const limit = 100; do { const response = await this.getRequests({ limit, offset }); allRequests.push(...response.data.requests); offset += limit; if (!response.data.has_more) break; } while (true); return allRequests; }}// Usageconst api = new RequestsAPI('your_api_key_here');// Get pending requestsconst pendingRequests = await api.getRequests({ status: 'pending' });console.log(`${pendingRequests.data.count} pending requests found`);// Get all requests with paginationconst allRequests = await api.getAllRequests();console.log(`Total requests retrieved: ${allRequests.length}`);
Get a comprehensive list of all requests you’ve created using your API key. This endpoint provides detailed information about each request including current status, response data, and performance metrics.
# Get all requestscurl -X GET https://api.hitl.sh/v1/api/requests \ -H "Authorization: Bearer your_api_key_here"# Get pending requests onlycurl -X GET "https://api.hitl.sh/v1/api/requests?status=pending" \ -H "Authorization: Bearer your_api_key_here"# Get high priority requests with paginationcurl -X GET "https://api.hitl.sh/v1/api/requests?priority=high&limit=20&offset=0" \ -H "Authorization: Bearer your_api_key_here"
import requestsdef get_requests(status=None, priority=None, loop_id=None, limit=50, offset=0): """Get requests with optional filtering""" url = "https://api.hitl.sh/v1/api/requests" headers = {"Authorization": "Bearer your_api_key_here"} params = {"limit": limit, "offset": offset} if status: params["status"] = status if priority: params["priority"] = priority if loop_id: params["loop_id"] = loop_id response = requests.get(url, headers=headers, params=params) return response.json()# Get all requestsall_requests = get_requests()# Get pending requestspending_requests = get_requests(status="pending")# Get high priority requestshigh_priority = get_requests(priority="high")print(f"Total requests: {all_requests['data']['total']}")print(f"Pending requests: {len([r for r in all_requests['data']['requests'] if r['status'] == 'pending'])}")
const axios = require('axios');class RequestsAPI { constructor(apiKey) { this.apiKey = apiKey; this.baseURL = 'https://api.hitl.sh/v1'; } async getRequests(filters = {}) { const params = new URLSearchParams(); // Add filters if (filters.status) params.append('status', filters.status); if (filters.priority) params.append('priority', filters.priority); if (filters.loop_id) params.append('loop_id', filters.loop_id); if (filters.limit) params.append('limit', filters.limit); if (filters.offset) params.append('offset', filters.offset); if (filters.sort) params.append('sort', filters.sort); const response = await axios.get(`${this.baseURL}/requests?${params}`, { headers: { 'Authorization': `Bearer ${this.apiKey}` } }); return response.data; } async getAllRequests() { let allRequests = []; let offset = 0; const limit = 100; do { const response = await this.getRequests({ limit, offset }); allRequests.push(...response.data.requests); offset += limit; if (!response.data.has_more) break; } while (true); return allRequests; }}// Usageconst api = new RequestsAPI('your_api_key_here');// Get pending requestsconst pendingRequests = await api.getRequests({ status: 'pending' });console.log(`${pendingRequests.data.count} pending requests found`);// Get all requests with paginationconst allRequests = await api.getAllRequests();console.log(`Total requests retrieved: ${allRequests.length}`);
def paginate_all_requests(api_key, batch_size=100): """Generator that yields all requests in batches""" headers = {"Authorization": f"Bearer {api_key}"} url = "https://api.hitl.sh/v1/api/requests" offset = 0 while True: params = {"limit": batch_size, "offset": offset} response = requests.get(url, headers=headers, params=params) data = response.json()["data"] # Yield current batch for request in data["requests"]: yield request # Check if we have more data if not data["has_more"]: break offset += batch_size# Usagerequest_count = 0for request in paginate_all_requests("your_api_key"): request_count += 1 if request["status"] == "pending": print(f"Pending request: {request['id']}")print(f"Total requests processed: {request_count}")
def analyze_response_times(requests_data): """Analyze response time patterns""" completed_requests = [r for r in requests_data if r["status"] == "completed" and r["response_time_seconds"]] if not completed_requests: return {"error": "No completed requests with response times"} response_times = [r["response_time_seconds"] for r in completed_requests] analysis = { "total_completed": len(completed_requests), "avg_response_time_seconds": sum(response_times) / len(response_times), "min_response_time": min(response_times), "max_response_time": max(response_times), "median_response_time": sorted(response_times)[len(response_times) // 2], "response_time_ranges": { "under_5_min": sum(1 for t in response_times if t < 300), "5_to_30_min": sum(1 for t in response_times if 300 <= t < 1800), "30_min_to_2_hours": sum(1 for t in response_times if 1800 <= t < 7200), "over_2_hours": sum(1 for t in response_times if t >= 7200) } } # Convert seconds to human readable analysis["avg_response_time_formatted"] = format_duration(analysis["avg_response_time_seconds"]) return analysisdef format_duration(seconds): """Format seconds into human readable duration""" if seconds < 60: return f"{int(seconds)} seconds" elif seconds < 3600: return f"{int(seconds // 60)} minutes" else: hours = int(seconds // 3600) minutes = int((seconds % 3600) // 60) return f"{hours}h {minutes}m"
Retrieve detailed information about a specific request including response data.
Create New Request
Create a new human review request within a loop.
⌘I
# Get all requestscurl -X GET https://api.hitl.sh/v1/api/requests \ -H "Authorization: Bearer your_api_key_here"# Get pending requests onlycurl -X GET "https://api.hitl.sh/v1/api/requests?status=pending" \ -H "Authorization: Bearer your_api_key_here"# Get high priority requests with paginationcurl -X GET "https://api.hitl.sh/v1/api/requests?priority=high&limit=20&offset=0" \ -H "Authorization: Bearer your_api_key_here"
import requestsdef get_requests(status=None, priority=None, loop_id=None, limit=50, offset=0): """Get requests with optional filtering""" url = "https://api.hitl.sh/v1/api/requests" headers = {"Authorization": "Bearer your_api_key_here"} params = {"limit": limit, "offset": offset} if status: params["status"] = status if priority: params["priority"] = priority if loop_id: params["loop_id"] = loop_id response = requests.get(url, headers=headers, params=params) return response.json()# Get all requestsall_requests = get_requests()# Get pending requestspending_requests = get_requests(status="pending")# Get high priority requestshigh_priority = get_requests(priority="high")print(f"Total requests: {all_requests['data']['total']}")print(f"Pending requests: {len([r for r in all_requests['data']['requests'] if r['status'] == 'pending'])}")
const axios = require('axios');class RequestsAPI { constructor(apiKey) { this.apiKey = apiKey; this.baseURL = 'https://api.hitl.sh/v1'; } async getRequests(filters = {}) { const params = new URLSearchParams(); // Add filters if (filters.status) params.append('status', filters.status); if (filters.priority) params.append('priority', filters.priority); if (filters.loop_id) params.append('loop_id', filters.loop_id); if (filters.limit) params.append('limit', filters.limit); if (filters.offset) params.append('offset', filters.offset); if (filters.sort) params.append('sort', filters.sort); const response = await axios.get(`${this.baseURL}/requests?${params}`, { headers: { 'Authorization': `Bearer ${this.apiKey}` } }); return response.data; } async getAllRequests() { let allRequests = []; let offset = 0; const limit = 100; do { const response = await this.getRequests({ limit, offset }); allRequests.push(...response.data.requests); offset += limit; if (!response.data.has_more) break; } while (true); return allRequests; }}// Usageconst api = new RequestsAPI('your_api_key_here');// Get pending requestsconst pendingRequests = await api.getRequests({ status: 'pending' });console.log(`${pendingRequests.data.count} pending requests found`);// Get all requests with paginationconst allRequests = await api.getAllRequests();console.log(`Total requests retrieved: ${allRequests.length}`);