+A complete REST API has been implemented for the Range functionality in the Collar project. The Range API provides endpoints for managing fixed-size ranges with automatic position assignment, useful for allocating unique identifiers, session tokens, or any bounded resource allocation scenario.
+
+## Implementation Details
+
+### API Endpoints Added
+
+The following 6 endpoints were added to `collar/crates/api/src/lib.rs`:
+
+1. **POST** `/store/range/{name}/{size}` - Define a new range
+2. **POST** `/store/range/{name}/assign/{value}` - Assign value to next available position
+3. **GET** `/store/range/{name}/{position}` - Get value at specific position
+4. **GET** `/store/range/{name}` - List all assignments in a range
+5. **GET** `/store/ranges` - List all defined ranges
+6. **POST** `/store/range/{name}/unassign/{value}` - Remove value and free its position
+
+### Handler Functions
+
+Each endpoint is implemented with a corresponding async handler function:
+
+- `post_range_define` - Creates ranges with specified size
+- `post_range_assign` - Assigns values to next free position
+- `get_range_position` - Retrieves values by position
+- `get_range_list` - Lists all assignments in a range
+- `get_ranges_list` - Lists all available ranges
+- `post_range_unassign` - Removes assignments and frees positions
+
+### Integration
+
+The API integrates seamlessly with the existing collar infrastructure:
+
+- Uses the same `AppState` pattern as existing namespace endpoints
+- Accesses `RangeStore` via `state.collar.store.ranges()`
+- Follows consistent error handling patterns
+- Returns descriptive success/error messages
+
+### Key Features
+
+- **Automatic Position Assignment**: Values are assigned to the lowest available position
+- **Position Reuse**: Unassigned positions become available for new assignments
+- **Range Validation**: Prevents operations on undefined ranges or out-of-bounds positions
+- **Value Uniqueness**: Each value can only be assigned once per range
+- **Atomic Operations**: All operations are transactionally safe
+
+### Documentation
+
+Complete API documentation with examples has been provided in `collar/docs/range_api.md`, including:
+
+- Endpoint specifications with parameters
+- Usage examples with curl commands
+- Complete workflow demonstration
+- Error scenarios and responses
+
+### Testing
+
+A test script `test_range_api.sh` has been created to verify all API functionality with a complete workflow test.
+
+## Benefits
+
+This implementation provides:
+
+- RESTful interface to range functionality
+- Consistent API design with existing endpoints
+- Comprehensive error handling and user feedback
+- Production-ready code with proper validation
+- Complete documentation and testing support
+
+The Range API is now ready for integration and use in collar applications requiring bounded resource allocation with automatic position management.
+The Range API provides endpoints for managing fixed-size ranges with automatic position assignment. This is useful for allocating unique identifiers, session tokens, or any scenario where you need to assign values to specific positions within a bounded range.
+
+## Overview
+
+Ranges are fixed-size buckets that automatically assign values to the next available position (bit). Each range has:
+- A unique name
+- A fixed maximum size (number of positions)
+- Automatic position assignment starting from 0
+- Ability to free positions when values are removed
+
+## Endpoints
+
+### Define a Range
+
+Create a new range with a specified size.
+
+```http
+POST /store/range/{name}/{size}
+```
+
+**Parameters:**
+- `name` (string): Unique name for the range
+- `size` (u64): Maximum number of positions in the range
+
+**Example:**
+```bash
+curl -X POST http://localhost:3000/store/range/user_ids/1000
+```
+
+**Response:**
+```
+Defined range 'user_ids' with size 1000
+```
+
+### Assign Value to Range
+
+Assign a value to the next available position in the range.
+
+```http
+POST /store/range/{name}/assign/{value}
+```
+
+**Parameters:**
+- `name` (string): Name of the range
+- `value` (string): Value to assign
+
+**Example:**
+```bash
+curl -X POST http://localhost:3000/store/range/user_ids/assign/alice@example.com
+```
+
+**Response:**
+```
+Assigned 'alice@example.com' to position 0 in range 'user_ids'
+```
+
+### Get Value at Position
+
+Retrieve the value assigned to a specific position.