Get Job Status
Get the status of an indexing job with detailed progress information.
## Status Values
- **pending**: Job created but processing hasn't started yet
- **running**: Job is actively processing files
- **completed**: Job finished successfully
- **failed**: Job encountered an error
- **cancelled**: Job was cancelled by user
## Processing Stages
When status is `running`, the `progress.current_stage` field indicates which stage:
1. **scanning**: Scanning bucket for files
2. **extracting**: Extracting text content from documents
3. **chunking**: Splitting documents into semantic chunks
4. **tagging**: AI tagging and summarization
5. **embedding**: Generating vector embeddings
6. **finalizing**: Aggregating results and recording billing
## File Status Values
Each file in the `files` array has a status:
- **queued**: Waiting to be processed
- **processing**: Currently being processed
- **completed**: Successfully indexed
- **failed**: Failed to process (see error_code/error_message)
- **skipped**: Skipped (already indexed, unsupported type, etc.)
- **cancelled**: Processing was cancelled
Path parameters
job_id
The job ID returned from an indexing request
Headers
Authorization
Captain API key for authentication
Response
Job Status
job_id
Unique identifier for the job
status
Current job status
Allowed values:
collection_name
Name of the collection being indexed
job_type
Type of indexing job
progress_message
Human-readable progress message
progress
Detailed progress information including current stage and file counts
files
Array of individual file statuses
files_page
Pagination info for the files array
result
Final result summary (present when completed or failed)
billing
Billing details including cost, credits used, and remaining balance. Only present when status is 'completed'.
error_code
Error code if job failed
error_message
Error message if job failed
cancelled_by
Who cancelled the job (if cancelled)
cancelled_at
When the job was cancelled
created_at
When the job was created
updated_at
When the job was last updated
started_at
When processing started (null if pending)
completed_at
When the job finished (completed, failed, or cancelled)
estimated_time_remaining_seconds
Estimated seconds until completion