US Brand Signal Rule Router
Pricing
Pay per event
US Brand Signal Rule Router
Route normalized US-brand signals through ordered, explicit rules into a deterministic machine-readable plan. No network, destinations, webhooks, or inferred identity.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Tim Zinin
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Turn normalized US-brand intelligence signals into one deterministic routing plan. Supply explicit signal rows and ordered rules; receive every signal exactly once with its matched route IDs, unmatched IDs, per-route counts, warnings, and reproducible digests. The Actor does not send messages, call destinations, fetch URLs, or infer brand identity.
Input
Send 1-50 inline signals and 1-20 rules in firstMatch or allMatches mode. This complete synthetic example can be pasted into the Apify input editor:
{"schemaVersion": "1.0","mode": "firstMatch","signals": [{"signalId": "sig-nike-launch-001","brandName": "Nike","eventType": "product_launch","severity": "high","confidence": 0.96,"sourceName": "brand-monitor-fixture","country": "US","analysisStatus": "unreviewed","observedAt": "2026-08-05T10:00:00.000Z"},{"signalId": "sig-acme-incident-002","brandName": "Acme Labs","eventType": "safety_incident","severity": "critical","confidence": 0.91,"sourceName": "brand-monitor-fixture","country": "US","analysisStatus": "reviewed","observedAt": "2026-08-05T10:01:00.000Z"},{"signalId": "sig-unmatched-003","brandName": "Contoso","eventType": "news_item","severity": "low","confidence": 0.42,"sourceName": "press-fixture","country": "US","analysisStatus": "unknown","observedAt": "2026-08-05T10:02:00.000Z"}],"rules": [{"ruleId": "rule-critical","routeId": "risk-review","eventType": null,"severity": "critical","confidenceMin": 0.8,"confidenceMax": null,"sourceName": null,"country": "US","analysisStatus": null},{"ruleId": "rule-launch","routeId": "launch-review","eventType": "product_launch","severity": null,"confidenceMin": 0.9,"confidenceMax": null,"sourceName": "brand-monitor-fixture","country": "US","analysisStatus": "unreviewed"},{"ruleId": "rule-high-confidence","routeId": "confidence-review","eventType": null,"severity": null,"confidenceMin": 0.9,"confidenceMax": 1,"sourceName": null,"country": null,"analysisStatus": null}]}
Rules can match only eventType, severity, inclusive confidenceMin/confidenceMax, sourceName, country, and analysisStatus. There is no expression language, regex, code, URL, webhook, or destination field. In firstMatch, the first matching rule wins. In allMatches, every matching route is retained in rule order.
Dataset result
A successful run writes exactly one paid routing plan:
{"schemaVersion": "1.0","mode": "firstMatch","signals": {"sig-acme-incident-002": { "matchedRouteIds": ["risk-review"] },"sig-nike-launch-001": { "matchedRouteIds": ["launch-review"] },"sig-unmatched-003": { "matchedRouteIds": [] }},"unmatchedSignalIds": ["sig-unmatched-003"],"routeCounts": { "risk-review": 1, "launch-review": 1, "confidence-review": 0 },"warnings": ["unmatched_signals_present"],"inputDigest": "sha256:421ee443a0061e0fe0654b61c18dc4bec9a6beca8c61a77ba20e0091517e2a37","resultDigest": "sha256:a13b4f9a49fc68740a41b5bbbc4a07767c6280d609389b1e3dfbd379e3203c23"}
Signal IDs and route IDs are JSON object keys, so each appears once. Signals are ordered by UTF-8 bytes for output and digest purposes. Rule order remains semantic.
OUTPUT receipt
The default KVS key OUTPUT records confirmed delivery and billing truth:
{"schemaVersion": "1.0","status": "result-found","deliveryState": "confirmed_paid_result","planDigest": "sha256:a13b4f9a49fc68740a41b5bbbc4a07767c6280d609389b1e3dfbd379e3203c23","attemptedPushCount": 1,"datasetWriteCount": 1,"resultChargeDelta": 1,"confirmedResultChargeCount": 1,"chargedCount": 2,"eventChargeLimitReached": false,"datasetItemBillingEvent": null}
A successful receipt requires the custom result-found counter proof 0 -> 1, the documented SDK aggregate chargedCount: 2 (paid result-found plus zero-price default Dataset item), and a boolean eventChargeLimitReached value. The local/test harness may use chargedCount: 1 only with that exact counter proof. The boolean is preserved in OUTPUT; true means the successful current charge left no room for the next event of that type. Contradictory delivery data fails closed. Failure truth distinguishes a confirmed paid Dataset result from a confirmed charge whose push delivery is unknown. If KVS or Actor exit fails after a confirmed paid push, the failure signal retains the plan digest, exact charge delta, Dataset-delivery fact, and OUTPUT write count; the Actor never retries the paid push.
API and MCP usage
After the Actor is public, submit the same input through the Apify API:
curl -sS -X POST \'https://api.apify.com/v2/acts/zinin~us-brand-signal-rule-router/runs?waitForFinish=60' \-H 'Authorization: Bearer YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \--data @input.json
An MCP client connected to Apify can pass the same object to its Actor-call tool:
{"actorId": "zinin/us-brand-signal-rule-router","input": {"schemaVersion": "1.0","mode": "firstMatch","signals": [{"signalId": "sig-demo-001","brandName": "Demo Brand","eventType": "recall","severity": "critical","confidence": 0.95,"sourceName": "synthetic-fixture","country": "US","analysisStatus": "unreviewed","observedAt": "2026-08-05T10:00:00.000Z"}],"rules": [{"ruleId": "rule-risk","routeId": "risk-review","eventType": "recall","severity": null,"confidenceMin": 0.9,"confidenceMax": null,"sourceName": null,"country": "US","analysisStatus": null}]}}
This is an invocation shape, not a claim that a separate MCP server or catalog registration already exists.
Pricing and discounts
Pay per event uses only Actor start plus one result-found routing plan. There is no default Dataset-item event.
| Apify tier | Discount | Start | Routing plan | Successful total |
|---|---|---|---|---|
| FREE | 0% | $0.00500 | $0.02000 | $0.02500 |
| BRONZE | 5% | $0.00475 | $0.01900 | $0.02375 |
| SILVER | 10% | $0.00450 | $0.01800 | $0.02250 |
| GOLD | 15% | $0.00425 | $0.01700 | $0.02125 |
| PLATINUM | 18% | $0.00410 | $0.01640 | $0.02050 |
| DIAMOND | 20% | $0.00400 | $0.01600 | $0.02000 |
The buyer cap is checked before routing. Missing, mixed, extra, or malformed event prices fail closed. Each separate Actor run is a separate purchase; there is no cross-run replay ledger.
Limits and validation
- 1-50 signals and 1-20 rules; serialized canonical input is at most 256 KiB.
- Runtime target: LIMITED visibility, 512 MB memory, 90 seconds.
- IDs are unique bounded ASCII values and cannot be all-numeric. Text is NFC, at most 128 Unicode characters and 256 UTF-8 bytes; BOM and Unicode line/paragraph separators are rejected.
- Confidence values are finite, between zero and one, and canonicalized on a nine-decimal grid.
- Timestamps are strict UTC ISO values with milliseconds, valid calendar dates, and years from
0001through9999. - No Dataset input, BYOK, proxy, fetch, destination call, state, replay, ledger, or inferred identity.
Related Actors
These optional neighboring Actors were independently read back as public and non-deprecated in the fleet pre-ship receipts. This Actor does not call them.
| Actor | How it fits |
|---|---|
| Intent Signal Aggregator | Produce hiring and news intent signals before deterministic routing. |
| Company Profile Lookup | Add explicit company context before building normalized signal rows. |
| Shopify Store Intelligence | Produce public catalog and merchant observations for a routing workflow. |
| Funding Round Tracker | Supply funding signals that can be mapped to analyst routes. |
| Patent Filing Monitor | Supply patent events for research and competitive-intelligence routes. |
FAQ
Does a route ID send a message? No. It is only a machine-readable label in the plan.
Can a rule run code or regex? No. Unknown fields and non-explicit predicates are rejected.
What happens to unmatched signals? They remain in signals, appear in unmatchedSignalIds, and produce one warning.
Are input permutations stable? Signal permutations produce the same plan and digests. Reordering rules can change firstMatch results by design.
Does the Actor deduplicate separate runs? No. Every run is an independent purchase.
Store text
SEO title: US Brand Signal Rule Router | Deterministic Routing Plan
Meta description: Route normalized US-brand intelligence signals through safe ordered rules into one deterministic machine-readable plan with exact digests and billing receipts.
Keywords: US brand intelligence, signal routing, rule engine, deterministic JSON, marketing automation, MCP Actor
Built by zinin.