What are Custom Properties?
Custom properties let you attach arbitrary metadata to your LLM requests. Use them to segment, filter, and analyze requests based on your application’s specific needs.Why Use Custom Properties?
Segmentation
Group requests by feature, environment, or any custom dimension
Filtering
Quickly find requests matching specific criteria
Analytics
Analyze costs and performance by custom segments
Debugging
Add context that helps debug issues later
Adding Properties via Headers
Add properties using theHelicone-Property-{Key} header pattern:
Add a custom property with any key name. Replace
{Key} with your property name.Examples:Helicone-Property-Environment: productionHelicone-Property-Feature: chatbotHelicone-Property-User-Tier: premium
Basic Example
Common Use Cases
Environment Tracking
Track which environment requests come from:Feature Segmentation
Segment by product feature or module:User Context
Add user-related metadata (combine withHelicone-User-Id):
Experiment Tracking
Track A/B tests and experiments:Request Classification
Classify requests by type or intent:Business Context
Add business-relevant metadata:Adding Properties After Request
Add or update properties on existing requests via API:- Adding properties based on request outcomes
- Updating classification after manual review
- Tagging requests retroactively
Filtering by Properties
Use properties to filter requests in the dashboard or via API:Dashboard Filtering
- Go to Requests page
- Click Add Filter
- Select Property
- Choose your custom property
- Set the condition (equals, contains, etc.)
API Filtering
Property-Based Analytics
Analyze costs and performance by properties:Cost per Feature
Environment Comparison
Compare staging vs production:Property Naming Best Practices
Use Consistent Naming
Use Consistent Naming
Establish naming conventions for your team:
- Use PascalCase or kebab-case consistently
- Good:
User-Tier,Feature,Environment - Bad:
userTier,FEATURE,env
Keep Values Consistent
Keep Values Consistent
Use the same values across your application:
- Good: Always use
production,staging,development - Bad: Mix of
prod,production,PROD
Use Descriptive Names
Use Descriptive Names
Make property names self-explanatory:
- Good:
Conversation-Type,User-Segment - Bad:
Type,Segment(too generic)
Avoid Sensitive Data
Avoid Sensitive Data
Don’t include PII or sensitive information in properties:
- Good:
User-Id: uuid-123,Organization-Id: org-456 - Bad:
User-Email: user@example.com,Credit-Card: 1234
Limit Property Count
Limit Property Count
Add 5-10 meaningful properties per request, not dozens. Too many properties make analysis harder.
Property Examples by Industry
- SaaS Products
- E-commerce
- Healthcare
- Education
Automatic Properties
Some Helicone headers are automatically converted to properties:Helicone-Session-Id→ Property:Helicone-Session-IdHelicone-Session-Name→ Property:Helicone-Session-NameHelicone-Prompt-Id→ Property:Helicone-Prompt-IdHelicone-Cache-Enabled→ Property:Helicone-Cache-Enabled
Property Limits
- Property Key Length: Max 100 characters
- Property Value Length: Max 500 characters
- Properties per Request: No hard limit, but keep it reasonable (5-10)
Next Steps
Session Tracking
Group related requests with sessions
User Metrics
Track per-user analytics
Request Logging
Learn about request data capture
API Reference
See property API documentation