When data is written to Chroma, it's first committed to our write-ahead log ( [Wal3](/content/engineering/wal3/index.html)), then indexed and persisted to object storage asynchronously. This architecture lets Chroma handle high-throughput writes without blocking, but until now, there was no way to know how much of your data had actually been indexed.

IndexingStatus tracks the progress of indexing operations in a Chroma collection. You can now call `get_indexing_status()` on any collection to see exactly where things stand.

The response includes:

- `num_indexed_ops`: Operations that have been fully indexed
- `num_unindexed_ops`: Operations still in the WAL, pending indexing
- `total_ops`: Total operation count (adds, updates, upserts, and deletes)
- `op_indexing_progress`: A float from 0.0 to 1.0 representing the proportion indexed

```rust
let status = collection.get_indexing_status().await?;

println!("Indexed: {}", status.num_indexed_ops);
println!("Pending: {}", status.num_unindexed_ops);
println!("Total: {}", status.total_ops);
println!("Progress: {:.1}%%", status.op_indexing_progress * 100.0);
```

```python
status = collection.get_indexing_status()

print(f"Indexed: {status.num_indexed_ops}")
print(f"Pending: {status.num_unindexed_ops}")
print(f"Total: {status.total_ops}")
print(f"Progress: {status.op_indexing_progress:.1%}")
```

```javascript
const status = await collection.getIndexingStatus();

console.log(`Indexed: ${status.numIndexedOps}`);
console.log(`Pending: ${status.numUnindexedOps}`);
console.log(`Total: ${status.totalOps}`);
console.log(`Progress: ${(status.opIndexingProgress * 100).toFixed(1)}%%`);
```

IndexingStatus is available today on Chroma Cloud.
