{
  "data": {
    "id": "ADmvgFffDLBVoqPC2",
    "userId": "drRQZ1HqaWNGLWzX5",
    "name": "zentra-agentops-tool-firewall",
    "username": "zentrafoundry",
    "description": "Allow, deny, redact, or require review for AI-agent tool calls.",
    "restartOnError": false,
    "isPublic": true,
    "createdAt": "2026-06-12T08:57:24.321Z",
    "modifiedAt": "2026-08-10T06:28:18.358Z",
    "taggedBuilds": {
      "latest": {
        "buildId": "Kf6L2cIOcYQWZasnD",
        "finishedAt": "2026-08-10T05:16:36.281Z",
        "buildNumberInt": 10000016,
        "buildNumber": "1.0.16"
      }
    },
    "stats": {
      "totalBuilds": 16,
      "totalRuns": 114,
      "totalUsers": 2,
      "totalUsers7Days": 1,
      "totalUsers30Days": 1,
      "totalUsers90Days": 1,
      "actorReviewCount": 0,
      "actorReviewRating": 0,
      "bookmarkCount": 0,
      "lastRunStartedAt": "2026-09-09T22:57:40.010Z",
      "publicActorRunStats30Days": {
        "ABORTED": 0,
        "FAILED": 0,
        "SUCCEEDED": 29,
        "TIMED-OUT": 0,
        "TOTAL": 29
      }
    },
    "versions": [
      {
        "versionNumber": "0.0",
        "sourceType": "SOURCE_FILES",
        "buildTag": "latest"
      },
      {
        "versionNumber": "1.0",
        "sourceType": "SOURCE_FILES",
        "buildTag": "latest"
      }
    ],
    "defaultRunOptions": {
      "build": "latest",
      "timeoutSecs": 3600,
      "memoryMbytes": 1024,
      "maxTotalChargeUsd": 5.01,
      "restartOnError": false,
      "forcePermissionLevel": "LIMITED_PERMISSIONS"
    },
    "exampleRunInput": {
      "body": "{\n    \"maxItems\": 1,\n    \"sourceIds\": [\n        \"MCP-SPEC\",\n        \"OWASP-LLM06\",\n        \"APIFY-MCP\"\n    ],\n    \"outputMode\": \"sample-records\",\n    \"includeSourceUrls\": true,\n    \"includeMatchReasons\": true,\n    \"mode\": \"demo\",\n    \"sourceMode\": \"sample\",\n    \"startUrls\": [],\n    \"actorSlug\": \"zentra-agentops-tool-firewall\"\n}",
      "contentType": "application/json; charset=utf-8"
    },
    "categories": [
      "AI",
      "DEVELOPER_TOOLS",
      "LEAD_GENERATION"
    ],
    "isDeprecated": false,
    "title": "AI Agent Tool Firewall",
    "pictureUrl": "https://zentraforge.store/images/apify/actors/cybersecurity.svg",
    "seoTitle": "AI Agent Tool Firewall for Apify Actors and MCP Workflows",
    "seoDescription": "Gate AI agent tool calls before they run with permission, budget, side-effect, domain, and human-review policies.",
    "pricingInfos": [
      {
        "pricingModel": "PAY_PER_EVENT",
        "pricingPerEvent": {
          "actorChargeEvents": {
            "policy-decision": {
              "eventTitle": "Policy Decision",
              "eventDescription": "Charge after producing one usable allow, deny, or human-review decision.",
              "eventPriceUsd": 0.006
            },
            "batch-policy-decision": {
              "eventTitle": "Batch Policy Decision",
              "eventDescription": "Charge after producing one batch of policy decisions.",
              "eventPriceUsd": 0.04
            },
            "policy-pack": {
              "eventTitle": "Policy Pack",
              "eventDescription": "Charge after producing one compiled reusable policy pack.",
              "eventPriceUsd": 0.09
            },
            "dataset-processed": {
              "eventTitle": "Successful dataset run",
              "eventDescription": "Base charge when Zentra Tool Firewall writes a non-empty default dataset.",
              "eventPriceUsd": 0.011
            },
            "record-saved": {
              "eventTitle": "Saved result",
              "eventDescription": "Charge for each buyer-visible result saved by Zentra Tool Firewall.",
              "eventPriceUsd": 0.003
            },
            "enriched-record": {
              "eventTitle": "Enriched result",
              "eventDescription": "Charge when Zentra Tool Firewall adds match scoring, source evidence, or enrichment to a saved result.",
              "eventPriceUsd": 0.022
            }
          }
        },
        "minimalMaxTotalChargeUsd": 5,
        "reasonForChange": "Configured from Zentra Actor Catalog and Pricing Lab assumptions.",
        "createdAt": "2026-06-12T08:57:25.075Z",
        "startedAt": "2026-06-12T08:57:25.075Z",
        "apifyMarginPercentage": 0.2
      },
      {
        "pricingModel": "PAY_PER_EVENT",
        "pricingPerEvent": {
          "actorChargeEvents": {
            "policy-decision": {
              "eventTitle": "Policy Decision",
              "eventDescription": "Charge after producing one usable allow, deny, or human-review decision.",
              "eventPriceUsd": 0.006
            },
            "batch-policy-decision": {
              "eventTitle": "Batch Policy Decision",
              "eventDescription": "Charge after producing one batch of policy decisions.",
              "eventPriceUsd": 0.04
            },
            "policy-pack": {
              "eventTitle": "Policy Pack",
              "eventDescription": "Charge after producing one compiled reusable policy pack.",
              "eventPriceUsd": 0.09
            },
            "dataset-processed": {
              "eventTitle": "Successful dataset run",
              "eventDescription": "Base charge when Zentra Tool Firewall writes a non-empty default dataset.",
              "eventPriceUsd": 0.011
            },
            "record-saved": {
              "eventTitle": "Saved result",
              "eventDescription": "Charge for each buyer-visible result saved by Zentra Tool Firewall.",
              "eventPriceUsd": 0.003
            },
            "enriched-record": {
              "eventTitle": "Enriched result",
              "eventDescription": "Charge when Zentra Tool Firewall adds match scoring, source evidence, or enrichment to a saved result.",
              "eventPriceUsd": 0.022
            }
          }
        },
        "minimalMaxTotalChargeUsd": 3.83,
        "reasonForChange": "Configured from Zentra Actor Catalog and Pricing Lab assumptions.",
        "startedAt": "2026-06-28T07:30:29.340Z",
        "createdAt": "2026-06-13T07:30:29.717Z",
        "apifyMarginPercentage": 0.2
      },
      {
        "pricingModel": "PAY_PER_EVENT",
        "pricingPerEvent": {
          "actorChargeEvents": {
            "tool-decision": {
              "eventTitle": "Tool Decision",
              "eventDescription": "Charge after producing one usable tool-call decision.",
              "eventPriceUsd": 0.006
            },
            "policy-pack": {
              "eventTitle": "Policy Pack",
              "eventDescription": "Charge after producing one compiled reusable policy pack.",
              "eventPriceUsd": 0.09
            },
            "dataset-processed": {
              "eventTitle": "Successful dataset run",
              "eventDescription": "Base charge when AI Agent Tool Firewall writes a non-empty default dataset.",
              "eventPriceUsd": 0.011
            },
            "record-saved": {
              "eventTitle": "Saved result",
              "eventDescription": "Charge for each buyer-visible result saved by AI Agent Tool Firewall.",
              "eventPriceUsd": 0.003
            },
            "enriched-record": {
              "eventTitle": "Enriched result",
              "eventDescription": "Charge when AI Agent Tool Firewall adds match scoring, source evidence, or enrichment to a saved result.",
              "eventPriceUsd": 0.022
            }
          }
        },
        "minimalMaxTotalChargeUsd": 2,
        "reasonForChange": "Configured from Zentra Actor Catalog and Pricing Lab assumptions.",
        "startedAt": "2026-07-21T12:45:02.748Z",
        "createdAt": "2026-07-06T12:45:03.600Z",
        "apifyMarginPercentage": 0.2,
        "notifiedAboutFutureChangeAt": "2026-07-06T12:45:23.841Z",
        "notifiedAboutChangeAt": "2026-07-21T13:05:37.379Z"
      }
    ],
    "notice": "NONE",
    "isCritical": false,
    "isGeneric": false,
    "hasNoDataset": false,
    "isSourceCodeHidden": true,
    "standbyUrl": null,
    "actorPermissionLevel": "LIMITED_PERMISSIONS",
    "readmeSummary": "## AI Agent Tool Firewall\n\nA focused AI agent firewall transformation Actor that monitors configured public sources and supplied records, parses messy inputs (PDFs, CSV, JSON, tables, web pages, dataset URLs), and produces automation-ready structured rows and tables with schema detection, normalization, extraction, auditing, deduplication, diffing, validation, and scoring. The Actor emits dataset-quality signals such as duplicate and null-rate metrics, validation and parse errors, warnings, confidence/score indicators, stable record identifiers and source references, retrieval timestamps, and run-level summaries. Built to support targeted AI-agent firewall monitoring and change-detection workflows, it leverages Model Context Protocol and OWASP risk references and supports sample-mode QA and bounded validation runs for inspection before scaling.\n\n## Use cases\n\n- Clean, extract, compare, or audit AI agent firewall inputs before ingestion into downstream processes.  \n- Convert messy operational inputs into predictable row-based JSON/CSV for automated processing and analysis.  \n- Detect and surface schema drift, validation errors, duplicates, null rates, warnings, and changed records for data governance.  \n- Run small validation or sample-mode checks to verify parsing, normalization, and quality before scaling recurring runs.  \n- Produce diff reports and dedupe/audit metrics for change-detection and record reconciliation workflows.",
    "deploymentKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClgx8gB+xlt6mgTsBJmIKcbzbIEd8IslAFRl/68O3DNc1xrSHnNmyKD+1kXp/R5+ENUogf7slz0uaje1DlhFK1zLeNNsra4PyYqcn1xteG698Wz688eeXYrvIAOoYH4fUKP3IbfvFca/73WMPtSwOtaoGxVvSkFZfjkh4SP8CZsD/eQDGgbXwlcZ86z5fxDHZQhqhyDRPijyfbfkcLZ4XXpuZayemWC8Aa0W1x3LNqF0hPJ5TN+3Bd3Myb4TtL64EiaxOIfGNPjE3aRFd5iyER9tGsIRDM1IlTcbjnG5ctKJZ/cEyLQYzETclJ0eY3nZnQiEDf9T9ZJF9zKy66xIE1 \n"
  }
}