Knack Reader
SKILL.md
Knack Reader
Purpose
REST-based access to Knack Objects and Views for data extraction and transformation. Primary skill for reading HTI operational data from Knack database.
Core Functions
get_records
Endpoint: GET /v1/objects/{object_key}/records
Parameters:
object_key(string, required): Knack object identifier (e.g., "object_1", "object_5")rows_per_page(integer, optional): Number of records per page (default: 1000, max: 1000)page(integer, optional): Page number to retrieve (default: 1)filters(object, optional): Filter criteria (see knack_filter_sort skill)sort(object, optional): Sort configuration (see knack_filter_sort skill)
Headers Required:
X-Knack-Application-Id: HTI Knack application IDX-Knack-REST-API-Key: API key for authentication
Example Usage:
const laptops = await get_records({
object_key: "object_1",
params: {
rows_per_page: 1000,
page: 1
}
});
Response Format:
{
"records": [...],
"total_pages": 5,
"current_page": 1,
"total_records": 4327
}
get_view_records
Endpoint: GET /v1/pages/{scene_id}/views/{view_id}/records
Parameters:
scene_id(string, required): Knack scene/page identifierview_id(string, required): Knack view identifieruser_token(string, optional): For user-specific data
Use Case: Retrieve data formatted according to view-level rules (calculated fields, display rules, permissions).
Example Usage:
const dashboardData = await get_view_records({
scene_id: "scene_12",
view_id: "view_45"
});
HTI-Specific Objects
Common Object Keys
- Laptop Inventory: Primary device tracking
- Donations: Donor organization records
- Training Sessions: Digital literacy event tracking
- Counties: Geographic distribution data
Best Practices
- Always use pagination for datasets >1000 records (see knack_pagination skill)
- Cache results for frequently accessed data (see knack_cache_optimizer skill)
- Use filters to reduce payload size when possible
- Respect rate limits: 10 requests/second maximum
Integration Points
- knack_pagination: For retrieving full datasets
- knack_filter_sort: For query optimization
- knack_cache_optimizer: For performance
- knack_data_cleaner: For post-retrieval validation
Error Handling
Common errors:
401 Unauthorized: Check API credentials404 Not Found: Verify object_key/view_id429 Too Many Requests: Rate limit exceeded (use cache_optimizer)500 Internal Server Error: Retry with exponential backoff
Grant Reporting Use
Essential for quarterly reports:
- Acquired laptops count
- Converted/ready devices
- Discarded/recycled units
- Training session attendance