# RFP Compliance Matrix & Disqualifier Extractor (`jadelike_zine/rfp-compliance-matrix-extractor`) Actor

Turn a US federal RFP/RFQ into a compliance matrix: extract every shall/will/must requirement with a verbatim quote, auto-flag disqualifiers (page limit, font, deadline, submission method, SAM registration), and cross-check Section L vs Section M for hidden requirements.

- **URL**: https://apify.com/jadelike\_zine/rfp-compliance-matrix-extractor.md
- **Developed by:** [Derrick](https://apify.com/jadelike_zine) (community)
- **Categories:** Agents, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$200.00 / 1,000 compliance matrix builts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## RFP Compliance Matrix & Disqualifier Extractor

**What it does (for agents & pipelines):** give it a US federal solicitation (RFP/RFQ/IFB) as text or a public URL/PDF, and it returns a structured **compliance matrix** — every `shall`/`will`/`must` requirement with a verbatim quote, each auto-classified against a **disqualifier** table (page limit, font, deadline, submission method, SAM registration, reps & certs), plus a deterministic **Section L vs Section M crosswalk** that surfaces hidden requirements. Machine-readable, pay-per-document, no seat license.

Returns, as structured JSON:

- ✅ **Every binding requirement** (`shall`/`will`/`must`/`required`) with its requirement ID, section, and a **verbatim `source_quote`** — nothing invented
- ✅ A ready **disqualifier list** — the procedural/administrative requirements whose violation can eliminate a proposal (page limits, fonts, margins, **submission deadline**, submission method/# of copies, file format, volume structure, **SAM.gov registration**, reps & certs), each with a plain-English *why* and a `critical`/`high`/`medium` severity
- ✅ **Section L ↔ Section M crosswalk** — the differentiator: it flags evaluation factors scored in Section M that **no Section L instruction tells you to submit** (a hidden requirement, high-severity) and instructions not mirrored by an evaluation factor (possible wasted effort)
- ✅ Optional **proposal coverage** — pass your draft and get a per-requirement heuristic of what appears addressed vs. missing

Built for **proposal managers, capture teams, GovCon consultants, and RFP-response agents** who need the compliance matrix a competitor charges $4,000–$5,600 of labor (10–18 hours) to build by hand — in seconds, per document.

### Why the disqualifier flags and crosswalk are trustworthy

The model only extracts **requirement text and verbatim quotes** from your solicitation. It never decides what is a disqualifier and never compares L to M. **Deterministic code** does both, from a curated rule matrix (`rules/compliance-rules.json`): a disqualifier pattern table grounded in the uniform contract format and the late-submission rule (FAR 15.204-1, 15.204-5, 52.212-1(f)), and a standard set of evaluation subjects used to run the L/M crosswalk as pure set logic. Every flag traces back to a verbatim quote you can click to the source.

### Input

```json
{
  "documents": [
    { "id": "rfp-1", "text": "SECTION L - INSTRUCTIONS ... The Technical Volume shall not exceed 30 pages ... SECTION M - EVALUATION FACTORS ... Past performance ..." },
    { "id": "rfp-2", "url": "https://example.com/public-solicitation.pdf" },
    { "id": "rfp-3", "text": "SECTION L ... SECTION M ...", "proposal_text": "Our technical approach ..." }
  ]
}
````

1–20 documents per run. Provide `text` (paste Sections L and M — fastest and most reliable) **or** a `url` to a public solicitation page/PDF (fetched best-effort). Optional `proposal_text`/`proposal_url` adds the coverage check. Do **not** point `url` at sam.gov — its [Terms of Use](https://sam.gov/about/terms-of-use) prohibit automated harvesting; paste the text instead.

### Output (per document)

```json
{
  "meta": { "solicitation_no": "47QTCA-26-R-0007", "agency": "GSA", "due_date": "15 September 2026", "vehicle": "RFP" },
  "requirements": [
    { "requirement_id": "L.1", "section": "L", "modal": "shall", "category": "disqualifier",
      "disqualifier_id": "page-limit", "severity": "critical",
      "why": "A stated page limit. Evaluators commonly do not read — and may remove — pages beyond the limit ...",
      "source_quote": "shall not exceed 30 pages" },
    { "requirement_id": "L.4", "section": "L", "modal": "shall", "category": "substantive",
      "subjects": ["technical-approach"], "source_quote": "describe its technical approach and management plan" }
  ],
  "disqualifiers": [ /* the critical/high items, sorted */ ],
  "crosswalk_gaps": [
    { "kind": "M_not_in_L", "subject": "small-business", "severity": "high",
      "detail": "Evaluated under Section M but no Section L instruction ... asks you to submit Small business participation content — likely a hidden requirement." }
  ],
  "counts": { "requirements": 7, "disqualifiers": 5, "crosswalk_gaps": 1 },
  "disclaimer": "..."
}
```

### vs. VisibleThread / GovDash / Loopio / Responsive

These are strong platforms. [VisibleThread](https://www.visiblethread.com/) does deterministic `shall` extraction; [GovDash](https://www.govdash.com/), [Loopio](https://loopio.com/), and [Responsive](https://www.responsive.io/) build compliance matrices inside a full proposal-collaboration suite (typically **$7k–$28k+/year**, sales-led). This Actor is the **pay-per-document, API-first, agent-friendly** version of just the matrix job: no seat subscription, no sales cycle, structured output you can drop into a pipeline. What it adds beyond raw `shall` extraction is the **deterministic disqualifier taxonomy** (with severity + *why*) and the **L/M crosswalk** — the two things that actually keep a proposal from being thrown out. If you want an end-to-end content library and team workflow, use Loopio/Responsive. If you want automatable compliance-matrix extraction you pay for by the document, use this.

### Limits (read this)

- **NOT legal advice** and not a guarantee of compliance or award. It is a drafting aid. Always verify every flag against the exact solicitation text, amendments, and Q\&A, and confirm the **deadline and submission method directly with the contracting officer**.
- The disqualifier table and the L/M crosswalk are **heuristic pattern/subject matching** (v0.1). They catch the common killers and hidden-requirement patterns; they are not a substitute for a human compliance read. The crosswalk needs both requirements and Section M factors present in the document.
- Extraction is **text-only** and depends on document quality. Garbage in → low `quote_hit_ratio` → not billed.

### Fair charging

Pay per successfully processed document (`matrix-built`). Failed fetches, non-solicitation text, low-verification extractions, and documents skipped after your run's charge limit is reached are **not charged**. Every `source_quote` is re-verified verbatim against the document before the run is billable.

### Development

```bash
pnpm install
pnpm typecheck   # tsc --noEmit
pnpm test        # vitest: rules table, validate layer, classify + crosswalk
pnpm smoke       # offline end-to-end (no network, no LLM)
pnpm golden      # real-LLM acceptance vs hand-labeled solicitation samples (needs DEEPSEEK_API_KEY)
```

Architecture (single-direction deps): `main → fetch/extract/validate/match → rules → domain`. Same three-layer engine as the tender-deep-extractor and the GovCon clause extractor; the disqualifier + evaluation-subject rule matrix is the moat.

### Current-source verification

Rule matrix grounded in primary FAR sources retrieved 2026-07-18: uniform contract format Section L/M identity — [FAR 15.204-1](https://www.acquisition.gov/far/15.204-1), [FAR 15.204-5](https://www.acquisition.gov/far/15.204-5); late-submission rule — [FAR 52.212-1(f)](https://www.acquisition.gov/far/52.212-1), [FAR 15.208](https://www.acquisition.gov/far/15.208).

# Actor input Schema

## `documents` (type: `array`):

1-20 US federal solicitations (RFP/RFQ/IFB). Each item: `text` to paste the solicitation text (e.g. Sections L and M) OR `url` to a public solicitation page or PDF (fetched best-effort). Optional `id` is echoed back. OPTIONAL proposal gap check: also include `proposal_text` (or `proposal_url`) with your draft proposal — the output then adds `proposal_coverage`, a per-requirement heuristic of what your draft appears to address. Do NOT point any url at sam.gov — its Terms of Use prohibit automated harvesting; paste the text instead.

## Actor input object example

```json
{
  "documents": [
    {
      "id": "sample-rfp",
      "text": "SOLICITATION 47QTCA-26-R-0007, General Services Administration. Request for Proposals. Offers are due no later than 2:00 PM ET on 15 September 2026. SECTION L - INSTRUCTIONS, CONDITIONS, AND NOTICES TO OFFERORS. L.1 The Technical Volume shall not exceed 30 pages. L.2 Proposals must be submitted in Times New Roman 12-point font with one-inch margins. L.3 The offeror shall submit a separate Price Volume (Volume II). L.4 The offeror shall describe its technical approach and management plan. L.5 The offeror shall provide three past performance references. L.6 The offeror must be registered in SAM.gov at time of proposal submission. SECTION M - EVALUATION FACTORS FOR AWARD. M.1 Technical approach. M.2 Past performance. M.3 Price. M.4 Small business participation will be evaluated."
    },
    {
      "id": "sample-with-proposal",
      "text": "SECTION L. The offeror shall submit a technical approach. The offeror shall provide a quality control plan. Proposals are due 30 June 2026. SECTION M. Evaluation factors: technical approach; quality control.",
      "proposal_text": "Our Technical Approach: we will deliver the services using an agile methodology. Our team has 10 years of relevant experience."
    }
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "documents": [
        {
            "id": "sample-rfp",
            "text": "SOLICITATION 47QTCA-26-R-0007, General Services Administration. Request for Proposals. Offers are due no later than 2:00 PM ET on 15 September 2026. SECTION L - INSTRUCTIONS, CONDITIONS, AND NOTICES TO OFFERORS. L.1 The Technical Volume shall not exceed 30 pages. L.2 Proposals must be submitted in Times New Roman 12-point font with one-inch margins. L.3 The offeror shall submit a separate Price Volume (Volume II). L.4 The offeror shall describe its technical approach and management plan. L.5 The offeror shall provide three past performance references. L.6 The offeror must be registered in SAM.gov at time of proposal submission. SECTION M - EVALUATION FACTORS FOR AWARD. M.1 Technical approach. M.2 Past performance. M.3 Price. M.4 Small business participation will be evaluated."
        },
        {
            "id": "sample-with-proposal",
            "text": "SECTION L. The offeror shall submit a technical approach. The offeror shall provide a quality control plan. Proposals are due 30 June 2026. SECTION M. Evaluation factors: technical approach; quality control.",
            "proposal_text": "Our Technical Approach: we will deliver the services using an agile methodology. Our team has 10 years of relevant experience."
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jadelike_zine/rfp-compliance-matrix-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "documents": [
        {
            "id": "sample-rfp",
            "text": "SOLICITATION 47QTCA-26-R-0007, General Services Administration. Request for Proposals. Offers are due no later than 2:00 PM ET on 15 September 2026. SECTION L - INSTRUCTIONS, CONDITIONS, AND NOTICES TO OFFERORS. L.1 The Technical Volume shall not exceed 30 pages. L.2 Proposals must be submitted in Times New Roman 12-point font with one-inch margins. L.3 The offeror shall submit a separate Price Volume (Volume II). L.4 The offeror shall describe its technical approach and management plan. L.5 The offeror shall provide three past performance references. L.6 The offeror must be registered in SAM.gov at time of proposal submission. SECTION M - EVALUATION FACTORS FOR AWARD. M.1 Technical approach. M.2 Past performance. M.3 Price. M.4 Small business participation will be evaluated.",
        },
        {
            "id": "sample-with-proposal",
            "text": "SECTION L. The offeror shall submit a technical approach. The offeror shall provide a quality control plan. Proposals are due 30 June 2026. SECTION M. Evaluation factors: technical approach; quality control.",
            "proposal_text": "Our Technical Approach: we will deliver the services using an agile methodology. Our team has 10 years of relevant experience.",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("jadelike_zine/rfp-compliance-matrix-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "documents": [
    {
      "id": "sample-rfp",
      "text": "SOLICITATION 47QTCA-26-R-0007, General Services Administration. Request for Proposals. Offers are due no later than 2:00 PM ET on 15 September 2026. SECTION L - INSTRUCTIONS, CONDITIONS, AND NOTICES TO OFFERORS. L.1 The Technical Volume shall not exceed 30 pages. L.2 Proposals must be submitted in Times New Roman 12-point font with one-inch margins. L.3 The offeror shall submit a separate Price Volume (Volume II). L.4 The offeror shall describe its technical approach and management plan. L.5 The offeror shall provide three past performance references. L.6 The offeror must be registered in SAM.gov at time of proposal submission. SECTION M - EVALUATION FACTORS FOR AWARD. M.1 Technical approach. M.2 Past performance. M.3 Price. M.4 Small business participation will be evaluated."
    },
    {
      "id": "sample-with-proposal",
      "text": "SECTION L. The offeror shall submit a technical approach. The offeror shall provide a quality control plan. Proposals are due 30 June 2026. SECTION M. Evaluation factors: technical approach; quality control.",
      "proposal_text": "Our Technical Approach: we will deliver the services using an agile methodology. Our team has 10 years of relevant experience."
    }
  ]
}' |
apify call jadelike_zine/rfp-compliance-matrix-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jadelike_zine/rfp-compliance-matrix-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "RFP Compliance Matrix & Disqualifier Extractor",
        "description": "Turn a US federal RFP/RFQ into a compliance matrix: extract every shall/will/must requirement with a verbatim quote, auto-flag disqualifiers (page limit, font, deadline, submission method, SAM registration), and cross-check Section L vs Section M for hidden requirements.",
        "version": "0.1",
        "x-build-id": "A8KngqLfI9hXhTeJ9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jadelike_zine~rfp-compliance-matrix-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jadelike_zine-rfp-compliance-matrix-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jadelike_zine~rfp-compliance-matrix-extractor/runs": {
            "post": {
                "operationId": "runs-sync-jadelike_zine-rfp-compliance-matrix-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jadelike_zine~rfp-compliance-matrix-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-jadelike_zine-rfp-compliance-matrix-extractor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "documents"
                ],
                "properties": {
                    "documents": {
                        "title": "Solicitation documents",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "description": "1-20 US federal solicitations (RFP/RFQ/IFB). Each item: `text` to paste the solicitation text (e.g. Sections L and M) OR `url` to a public solicitation page or PDF (fetched best-effort). Optional `id` is echoed back. OPTIONAL proposal gap check: also include `proposal_text` (or `proposal_url`) with your draft proposal — the output then adds `proposal_coverage`, a per-requirement heuristic of what your draft appears to address. Do NOT point any url at sam.gov — its Terms of Use prohibit automated harvesting; paste the text instead."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
