Requests
Requests are the core units of work that flow through HITL.sh loops. Each request represents content, data, or a decision that needs human review before proceeding. Requests are created via the API, broadcasted to human reviewers, and return structured responses.What is a Request?
A request in HITL.sh contains:- Content to Review: The actual material requiring human oversight (text, images, data)
- Response Configuration: How reviewers should respond (single select, rating, text, etc.)
- Processing Settings: Timeout behavior, priority level, and platform tracking
- Loop Context: Which loop handles the request and who receives notifications
- Timeout Handling: What happens if no human responds within the time limit
Requests are created by API consumers and reviewed by humans via the HITL mobile app. The structured responses are then available via API polling or webhooks.
Request Lifecycle
1. Creation
Requests are created when your application needs human oversight. The API validates the request configuration and immediately broadcasts it to active loop members.2. Broadcast
Once created, requests are immediately broadcasted to all active members of the target loop:- Push notifications sent to mobile devices
- In-app notifications appear in the HITL mobile app
- Email alerts (if configured) for time-sensitive requests
- Request queuing maintains order and prevents duplicate claims
3. Claiming
Human reviewers see pending requests in their mobile app and can claim them for review:- First-come-first-served: The first reviewer to claim gets to respond
- Claim timeout: Claimed requests automatically return to pending if not completed
- Priority ordering: Higher priority requests appear first in the queue
4. Review & Response
Reviewers interact with the configured response type in a mobile-optimized interface:- Single select: Tap one option from a visual list
- Multi select: Check multiple options with validation
- Rating: Drag a slider or tap star ratings
- Text: Type detailed feedback with character count
- Number: Enter numeric values with formatting
5. Completion
When a reviewer submits their response:- Validation: Response is checked against configuration rules
- Storage: Response data is stored with reviewer metadata
- Notification: Original requester is notified (webhook/polling)
- Status update: Request status changes to “completed”
Request Types
Processing Types
Time-Sensitive
Immediate processing with explicit timeout
- Requires
timeout_seconds
parameter - Reviewers get urgent notifications
- Used for content moderation, fraud detection
- Typical timeouts: 15 minutes to 24 hours
Deferred
Non-urgent processing with flexible timeline
- Optional
timeout_seconds
(defaults to 30 days) - Lower priority in reviewer queues
- Used for quality reviews, data verification
- Typical timeouts: 1 day to 30 days
Content Types
Markdown
Text-based content for review
- Request text displayed as formatted markdown
- Support for lists, links, code blocks
- Mobile-optimized text rendering
- Used for articles, comments, documents
Image
Visual content requiring review
- Requires
image_url
parameter - Full-screen image viewing on mobile
- Zoom and pan capabilities
- Used for photos, graphics, screenshots
Priority Levels
Requests can be assigned priority levels that affect reviewer notification urgency and queue ordering:Critical Priority
Critical Priority
- Immediate push notifications
- Red highlighting in mobile app
- Appear at top of reviewer queues
- Used for security threats, policy violations
High Priority
High Priority
- Priority push notifications
- Orange highlighting in mobile app
- Elevated position in queues
- Used for time-sensitive business decisions
Medium Priority
Medium Priority
- Standard push notifications
- Normal highlighting in mobile app
- Default queue ordering
- Used for routine content moderation
Low Priority
Low Priority
- Minimal notifications
- Subtle highlighting in mobile app
- Lower position in queues
- Used for quality improvements, feedback
Response Types
HITL.sh supports six response types, each with specific configuration options:Text Response
Free-form text input with length validation:Single Select Response
Choose one option from a predefined list:Multi Select Response
Choose multiple options with limits:Rating Response
Numeric rating with custom scale:Number Response
Numeric input with validation and formatting:Request Status Flow
Requests move through several states during their lifecycle:Pending
Pending
- Request created and broadcasted to reviewers
- Waiting for someone to claim and review
- Visible in all loop members’ mobile apps
- Can be cancelled by the creator
Claimed
Claimed
- A specific reviewer has claimed the request
- No longer visible to other reviewers
- Reviewer has limited time to complete
- Automatically returns to pending if abandoned
Completed
Completed
- Reviewer has submitted their response
- Response data is available via API
- Request can no longer be modified
- Feedback can be added by creator
Timeout
Timeout
- No reviewer responded within the timeout period
- Default response is used automatically
- Request is marked as completed with timeout flag
- Common for low-priority or off-hours requests
Cancelled
Cancelled
- Creator cancelled the request before completion
- No response data available
- Can only cancel pending or claimed requests
- Used when request is no longer needed
Request Monitoring
Polling for Status
Check request status programmatically:Batch Monitoring
Get all your requests:Advanced Features
Context Data
Include additional context that reviewers might need:Callback URLs
Get notified when requests complete:Platform Tracking
Track which platform generated the request:Error Handling
Common Request Creation Errors
Invalid Response Configuration
Invalid Response Configuration
Loop Not Found
Loop Not Found
No Active Members
No Active Members
Timeout Required
Timeout Required
Request Access Errors
Access Denied
Access Denied
Cannot Cancel
Cannot Cancel
Best Practices
Request Design
1
Clear Instructions
Write request_text that gives reviewers all the context they need to make informed decisions.
2
Appropriate Response Types
Choose response types that match the complexity of the decision required.
3
Reasonable Timeouts
Set timeout_seconds based on urgency and reviewer availability patterns.
4
Safe Defaults
Always provide default_response values that represent the safest outcome.
Performance Optimization
Batch Operations
Create multiple requests in quick succession rather than waiting for each to complete.
Priority Management
Use priority levels strategically - too many high-priority requests reduce their effectiveness.
Timeout Tuning
Monitor actual response times and adjust timeouts to balance urgency with completion rates.
Loop Balancing
Distribute requests across multiple loops to prevent bottlenecks and ensure coverage.
Quality Assurance
- Test configurations with simple requests before deploying complex workflows
- Monitor completion rates and adjust timeouts or priority levels accordingly
- Review default responses to ensure they align with business requirements
- Track reviewer performance to identify training needs or workload issues