Skip to main content

Test rule evaluation

POST /rules/redirect/:redirectId/test
Simulates rule evaluation by testing user attributes against all active rules for a redirect. Returns the matching rule and resulting destination URL without actually performing a redirect.

Path parameters

redirectId
string
required
The ID of the redirect whose rules to test

Request body

userAttributes
UserAttributes
required
User attribute values to test against rules

Response

result
RuleEvaluationResult | null
The evaluation result, or null if no rules matched
userAttributes
UserAttributes
The user attributes that were tested (echoed back)
message
string
Human-readable message about the test result

Examples

import { testRuleEvaluation } from '@quickleap/sdk';

const response = await testRuleEvaluation('redirect_123', {
  userAttributes: {
    device_type: 'mobile',
    country: 'US',
    browser_name: 'Safari',
    os_name: 'iOS'
  }
});

if (response.data.result) {
  console.log(`Matched rule: ${response.data.result.ruleName}`);
  console.log(`Destination: ${response.data.result.url}`);
  console.log(`Action type: ${response.data.result.actionType}`);
} else {
  console.log('No rules matched - would use default redirect');
}

Get rule analytics

GET /rules/redirect/:redirectId/analytics
Retrieve analytics and statistics for all rules associated with a redirect.

Path parameters

redirectId
string
required
The ID of the redirect

Response

analytics
RuleAnalyticsItem[]
Array of rule analytics
totalHits
number
Total hits across all rules
totalRules
number
Total number of rules
activeRules
number
Number of active rules

Example

import { getRuleAnalytics } from '@quickleap/sdk';

const response = await getRuleAnalytics('redirect_123');
const { analytics, totalHits, totalRules, activeRules } = response.data;

console.log(`Total rules: ${totalRules}`);
console.log(`Active: ${activeRules}`);
console.log(`Total hits: ${totalHits}`);

console.log('\nRule performance:');
analytics.forEach(rule => {
  console.log(`${rule.name}: ${rule.hitCount} (${rule.percentage}%)`);
});
The test endpoint does not increment hit counts or affect analytics. It’s safe to call repeatedly for testing purposes.