US Brand Action Queue avatar

US Brand Action Queue

Pricing

Pay per event

Go to Apify Store
US Brand Action Queue

US Brand Action Queue

Turn verified US brand signals into one deterministic, prioritized action queue with evidence, ownership, urgency, and optional BYOK explanations.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Turn already verified US brand signals into one deterministic, prioritized action queue. Each returned action keeps the evidence, urgency, ownership status, and rule trace needed for a downstream operator or agent to decide what to do next.

What you send

Send exactly one source:

  • items: up to 500 verified US brand signals inline; or
  • datasetId: one Apify Dataset selected with READ permission.

You may also send requestId, scoredAt, queue options, and an optional caller-owned OpenRouter key for explanations. The source rows must already contain verified attribution, evidence, timestamps, severity, state, and an owner when one is known. This Actor does not discover or verify those source rows.

The source choice is exclusive. Supplying both items and datasetId, or neither, is rejected. The input UI cannot express every cross-field rule, so the runtime is the authoritative validator.

What you get

For actionable input, the default Dataset receives one deterministic queue envelope. Its actions are sorted and deduplicated, with priority score, urgency, action type, owner information, evidence references, conflict references, and rule trace. The run's default key-value store receives one OUTPUT receipt for every terminal state.

For empty or unusable input, the Actor returns a status-only receipt. It does not incur the result-found charge, but every run still incurs the apify-actor-start event charge from the selected pricing tier. A partial, invalid, unavailable, or delivery-unknown state is reported explicitly; the Actor does not turn an uncertain delivery into a successful result. The runtime field free_status_only means only that no result event was charged; it does not mean that the run cost zero.

The hard limits are 500 source rows, 500 actions, 501 decoded Dataset probe rows, and 512 KiB for the returned queue envelope. The Dataset read uses one bounded page per attempt at offset zero. The Actor does not browse source URLs, call another Actor, use a proxy, maintain cross-run state, or guarantee replay/idempotency.

Synthetic prefill

The Store input prefill is synthetic demonstration data. It is labelled as demo data and is not a live Nike feed, live evidence, or a claim about Nike. Replace it with your own verified rows and use mode: "live" for production input. The small example below is a valid empty-input smoke test and therefore produces no paid queue result.

Input JSON

{
"schemaVersion": "1.0",
"requestId": "quickstart-empty",
"scoredAt": "2026-08-05T00:00:00Z",
"items": []
}

OUTPUT JSON

{
"schemaVersion": "1.0",
"actor": "us-brand-action-queue",
"requestId": "quickstart-empty",
"requestDigest": "sha256:1ec50135a198aebbbd26f8a8ab5f49f37aa13485fe05ea67680a86bd26a63d5d",
"scoredAt": "2026-08-05T00:00:00Z",
"queueId": null,
"status": "no_actionable_signals",
"runTerminalState": "SUCCEEDED",
"resultFound": false,
"partial": false,
"actionCount": 0,
"inputCount": 0,
"probeItemCount": 0,
"deduplicatedCount": 0,
"rejectedCount": 0,
"conflictCount": 0,
"billedResultCount": 0,
"datasetWriteCount": 0,
"source": { "kind": "items", "datasetId": null },
"limits": { "maxItems": 500, "maxActions": 500, "maxBytes": 524288, "truncated": false },
"analysisStatus": "skipped_no_key",
"errors": [],
"delivery": {
"state": "free_status_only",
"attemptedPushCount": 0,
"chargedCount": 0,
"resultChargeCountBefore": null,
"resultChargeCountAfter": null,
"aggregateChargedCount": null,
"eventChargeLimitReached": null,
"datasetItemBillingEvent": null
}
}

A non-empty, valid input produces status: "queue_found", resultFound: true, one Dataset queue envelope, and one paid result-found event. The following is a synthetic shape example of that successful receipt; it is not a live run receipt.

{
"schemaVersion": "1.0",
"actor": "us-brand-action-queue",
"requestId": "synthetic-action-queue-001",
"requestDigest": "sha256:3288949ccbfea1ca0dfbe7bf99c1d1ce252eada47d0f595c982e0ca213f9bc24",
"scoredAt": "2026-08-05T00:00:00Z",
"queueId": "sha256:0c099618e3c4aa651fde83c1eacf924cbbe0718898856963d04f41d46f7256d0",
"status": "queue_found",
"runTerminalState": "SUCCEEDED",
"resultFound": true,
"partial": false,
"actionCount": 1,
"inputCount": 2,
"probeItemCount": 2,
"deduplicatedCount": 1,
"rejectedCount": 0,
"conflictCount": 0,
"billedResultCount": 1,
"datasetWriteCount": 1,
"source": { "kind": "items", "datasetId": null },
"limits": { "maxItems": 500, "maxActions": 500, "maxBytes": 524288, "truncated": false },
"analysisStatus": "skipped_no_key",
"errors": [],
"delivery": {
"state": "confirmed_paid_result",
"attemptedPushCount": 1,
"chargedCount": 1,
"resultChargeCountBefore": 0,
"resultChargeCountAfter": 1,
"aggregateChargedCount": 2,
"eventChargeLimitReached": true,
"datasetItemBillingEvent": null
}
}

Billing and six-tier discounts

The start event is charged once per run. A non-empty queue is charged once for the single linked result-found event only after the result-event counter increases by exactly one around delivery. Dataset item pricing is not used. The start charge is already included in platform spend; the result price below is the only additional charge checked before a successful delivery.

TierDiscountStart eventResult eventStart plus one result
FREE0%$0.00500$0.02000$0.02500
BRONZE5%$0.00475$0.01900$0.02375
SILVER10%$0.00450$0.01800$0.02250
GOLD15%$0.00425$0.01700$0.02125
PLATINUM18%$0.00410$0.01640$0.02050
DIAMOND20%$0.00400$0.01600$0.02000

If the result counter is zero after a returned push, the receipt is budget_stopped. If the counter is unreadable, the push throws, or the delta is not exactly one, the receipt is delivery_unknown and no retry is made in that run. Separate runs are separate purchases even when they use the same requestId.

BYOK explanations

BYOK is optional and affects explanations only. When options.explanation is "byok", provide openrouterApiKey and the allowlisted model openai/gpt-4o-mini. The Actor makes at most one request to https://openrouter.ai/api/v1/chat/completions, projects at most 25 actions, limits the response to 600 output tokens, and applies a ten-second provider deadline.

The key is caller-supplied, is not stored in the queue or receipt, and is not written to logs. Provider quota and provider billing remain the caller's responsibility. Provider failures never become an authority for queue identity, attribution, billing, or the result-event decision. An HTTP 401, 402, or 429 response completed within the deadline proceeds to normal queue pricing and delivery with analysisStatus set to error_401, error_402, or error_429; another bounded provider failure uses error_provider and follows the same path.

The elapsed-time boundary is strict. A generic provider completion/error, including HTTP 408, observed at exactly 10,000 ms remains error_provider and can be delivered through normal pricing and delivery. Only an observed elapsed time greater than 10,000 ms maps to error_timeout; it then fails the mandatory runtime deadline gate and terminates with status: "source_unavailable", errors: ["deadline_exceeded"], runTerminalState: "FAILED", and no queue delivery or result-found push.

API

The following request uses only the README-contained empty-input JSON. Replace the input with your verified signals for a queue result.

curl -sS -X POST 'https://api.apify.com/v2/acts/zinin~us-brand-action-queue/runs?waitForFinish=60' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
--data '{
"schemaVersion": "1.0",
"requestId": "quickstart-empty",
"scoredAt": "2026-08-05T00:00:00Z",
"items": []
}'

After the run, read the run's default Dataset and the OUTPUT record from its default key-value store. Treat OUTPUT as authoritative for terminal status before assuming that a Dataset item was delivered.

curl -sS "https://api.apify.com/v2/datasets/$DEFAULT_DATASET_ID/items?clean=true&format=json" \
-H "Authorization: Bearer $APIFY_TOKEN"
curl -sS "https://api.apify.com/v2/key-value-stores/$DEFAULT_KVS_ID/records/OUTPUT" \
-H "Authorization: Bearer $APIFY_TOKEN"

Machine and agent use

The closed JSON input, bounded work, stable status enum, deterministic queue identity, and explicit OUTPUT receipt are suitable for scheduled jobs and agent workflows. An agent can call the Actor through the Apify API, JavaScript SDK, or an MCP client that exposes the standard Apify call-actor operation:

{
"name": "call-actor",
"arguments": {
"actor": "zinin/us-brand-action-queue",
"input": {
"schemaVersion": "1.0",
"requestId": "quickstart-empty",
"scoredAt": "2026-08-05T00:00:00Z",
"items": []
}
}
}

The agent should branch on OUTPUT.status, stop on delivery_unknown, and avoid blind retries. This section describes the call shape only and makes no statement about separate MCP, x402, or other catalogue registration.

The following five zinin Store Actors form the approved public crosslink allowlist. They are useful upstream or adjacent sources for the action queue.

ActorStore slugRelationshipAvailability
Intent Signal Aggregatorzinin/intent-signal-aggregatorSupplies intent signals that can be converted into prioritized brand actions.Public Store Actor
Company Profile Lookupzinin/company-lookupAdds company identity and profile context to a verified brand signal.Public Store Actor
Shopify Store Intelligencezinin/shopify-store-intelligenceSupplies commerce and store signals for brand or competitor workflows.Public Store Actor
Funding Round Trackerzinin/funding-round-trackerSupplies funding events that can trigger an outreach or monitoring action.Public Store Actor
Patent Filing Monitorzinin/patent-monitorSupplies patent signals that can be routed into a brand intelligence queue.Public Store Actor

Boundaries

This Actor does not establish legal ownership, verify a brand independently, make a compliance or investment decision, or guarantee that source evidence is complete. It does not fetch or dereference evidence URLs, use proxies, call external Actors, or retain public state. Review the supplied evidence and apply your own decision rules.

Built by zinin.