# Federal Register Monitor — Rules, NPRMs & Regulatory Alerts (`bikram07/federal-register-monitor`) Actor

Monitor the US Federal Register for new rules, proposed rules (NPRMs) and notices via the official API. Filter by agency, document type and keywords. Alert mode outputs only new documents on a daily schedule. Pay-per-event: $1 per 1,000 documents.

- **URL**: https://apify.com/bikram07/federal-register-monitor.md
- **Developed by:** [Bikram](https://apify.com/bikram07) (community)
- **Categories:** Automation, News, Developer tools
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Federal Register Monitor — US Rules, NPRM & Regulatory Alerts API (by Agency & Keyword)

Monitor the **US Federal Register** for new regulatory activity without building your own API integration. This Actor queries the **official Federal Register API** (federalregister.gov/api/v1 — free, no API key) for **final rules, proposed rules (NPRMs), regulatory notices, and presidential documents**, filters by agency, keyword, and document type, and returns flat JSON records ready for compliance dashboards, legal research tools, and AI agents.

Turn on **alert mode** and run it on an Apify Schedule to get a daily feed of **only the regulatory documents you haven't seen yet** — Federal Register monitoring without a SaaS subscription.

### What it does

- Searches the official Federal Register API for rules, proposed rules (NPRMs), notices, and presidential documents.
- Filters by full-text keyword, federal agency slug, document type, and publication window.
- Normalizes each document into one flat, stable JSON record (13 fields) — ready for any pipeline.
- In **alert mode**, remembers what it has already output per filter combination and emits **only new documents** on each run — the core of a daily regulatory alert.
- Works as an MCP tool for Claude, Cursor, and other AI agents.

### Why monitor the Federal Register via API?

The Federal Register publishes over 80,000 documents per year — rules, proposed rules, notices, and presidential documents from hundreds of federal agencies. Compliance teams, lobbyists, legal departments, and AI agents need to track new activity in specific agencies or topic areas as it happens. Incumbent regulatory-monitoring platforms (GovSignal, Quorum, FiscalNote) charge $49–$600+/month.

This Actor gives you the same raw data feed for a fraction of the cost, via the same official API, normalized to a flat JSON schema you can drop into any pipeline — and you pay only for the documents you actually receive.

### How it works

1. You provide filters: any combination of `keywords`, `agencies`, and `documentTypes`, plus a `publishedSince` window.
2. The Actor compiles them into a correct Federal Register API query (`articles.json`), handling pagination and rate limits for you.
3. Each returned document is flattened from the API's nested structure into one tidy record with stable field names. Missing fields are `null` — never guessed.
4. If `alertMode` is on, it loads the document numbers it has already output for this exact filter combination and skips them, so only new documents are written.
5. New documents are pushed to your dataset (one record each). Hook up an integration — email, Slack, webhook, Make/Zapier — to deliver them wherever your workflow lives.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `keywords` | string | none | Full-text search matched against title and abstract |
| `agencies` | array | none | Agency URL slugs from federalregister.gov (see FAQ) |
| `documentTypes` | array | none | `rule`, `proposed_rule`, `notice`, `presidential_document` — empty = all types |
| `publishedSince` | string | `7d` | Lookback window (`7d`, `30d`, `90d`) or absolute date (`2026-01-01`) |
| `maxRecords` | integer | `100` | Max records to output per run (1–5000) |
| `alertMode` | boolean | `false` | Output only documents not seen in previous runs with the same filters |

**At least one of `keywords`, `agencies`, or `documentTypes` is required.**

Input example:

```json
{
    "keywords": "artificial intelligence",
    "agencies": ["federal-trade-commission", "federal-communications-commission"],
    "documentTypes": ["rule", "proposed_rule"],
    "publishedSince": "30d",
    "maxRecords": 100,
    "alertMode": false
}
````

### Output fields

Each document becomes one dataset item with these fields (all flattened from the official API):

| Field | Type | Description |
|---|---|---|
| `documentNumber` | string | Federal Register document number (e.g. `2026-08241`) — the stable ID |
| `title` | string | Document title |
| `type` | string | `Rule`, `Proposed Rule`, `Notice`, or `Presidential Document` |
| `agencies` | array | Human-readable agency names that issued the document |
| `abstract` | string | null | Summary, truncated to 500 chars; full text at `htmlUrl` |
| `action` | string | null | The action line (e.g. "Final rule.", "Request for comment.") |
| `publicationDate` | string | Date published in the Federal Register (`YYYY-MM-DD`) |
| `effectiveDate` | string | null | Date a rule takes effect; `null` for notices / undated proposed rules |
| `citation` | string | null | Federal Register citation (e.g. `91 FR 41250`) |
| `docketIds` | array | Docket numbers for cross-referencing agency dockets / Regulations.gov |
| `pageLength` | integer | null | Number of pages in the Federal Register |
| `htmlUrl` | string | Link to the full document on federalregister.gov |
| `pdfUrl` | string | Link to the official PDF on govinfo.gov |

Output example (a real record shape returned by the API):

```json
{
    "documentNumber": "2026-08241",
    "title": "Artificial Intelligence in Financial Services — Request for Information",
    "type": "Notice",
    "agencies": ["Federal Reserve System", "Office of the Comptroller of the Currency"],
    "abstract": "The agencies are seeking public comment on the use of artificial intelligence and machine learning models in financial services, including risk management...",
    "action": "Request for information and comment.",
    "publicationDate": "2026-06-10",
    "effectiveDate": null,
    "citation": "91 FR 41250",
    "docketIds": ["Docket No. OP-1821"],
    "pageLength": 8,
    "htmlUrl": "https://www.federalregister.gov/documents/2026/06/10/2026-08241/...",
    "pdfUrl": "https://www.govinfo.gov/content/pkg/FR-2026-06-10/pdf/2026-08241.pdf"
}
```

### Use cases

- **Compliance & regulatory-affairs teams** — schedule a daily alert on the agencies that govern your industry (e.g. EPA, FDA, OSHA) and never miss a new rule or proposed rule that affects you.
- **Legal & policy researchers** — pull every rule and NPRM from an agency over a date window into a flat dataset for analysis, no manual searching of federalregister.gov.
- **Lobbyists & government-affairs professionals** — track NPRMs in your issue area while comment periods are still open, so clients can weigh in before rules are finalized.
- **GovTech / RegTech builders** — use it as a clean data source behind a regulatory-intelligence product instead of maintaining your own Federal Register scraper.
- **AI agents (via MCP)** — let an agent fetch and summarize new federal regulatory documents on demand as part of a research or monitoring workflow.

### Regulatory alerts: alert mode + Apify Schedules

1. Set your filters (e.g. `agencies: ["environmental-protection-agency"]`, `documentTypes: ["rule", "proposed_rule"]`) and `alertMode: true`.
2. Create an [Apify Schedule](https://docs.apify.com/platform/schedules) that runs the Actor daily.
3. Each run outputs **only documents that previous runs with the same filters haven't output yet** — every run's dataset is purely "what's new since last time".
4. Add an integration (email, Slack, webhook, Make/Zapier) on the Actor run to deliver the new regulatory documents wherever your compliance workflow lives.

How dedupe works: seen document numbers are stored in a named key-value store (`fed-reg-seen-<hash>`), one per filter combination. The hash covers `keywords`, `agencies`, and `documentTypes`, so changing `publishedSince` or `maxRecords` won't reset your alert history, while changing the actual filters starts a fresh history. Document numbers are remembered for 400 days.

### Pricing — $1 per 1,000 documents

This Actor uses Apify's **pay-per-event** model with one simple event:

| Event | Price | When it's charged |
|---|---|---|
| `federal-register-document` | $0.001 | Once per document record written to the dataset |

That's **$1 per 1,000 documents**. You are never charged for a document that wasn't written to the dataset: a run that delivers nothing charges nothing, and in alert mode already-seen documents are skipped for free — you pay only for records you actually receive.

### Use from Claude, Cursor & other AI agents (MCP)

This Actor works as a tool over the [Model Context Protocol](https://mcp.apify.com). Add Apify's MCP server to your client and your agent can monitor federal regulatory activity on demand:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com/sse?actors=bikram07/federal-register-monitor",
            "headers": {
                "Authorization": "Bearer YOUR_APIFY_TOKEN"
            }
        }
    }
}
```

Then ask your agent things like: *"What new EPA rules or proposed rules have been published in the last 30 days? Summarize the top five by likely business impact."* — the agent calls this Actor, gets normalized document records back, and works with them directly.

You can also call it from code via the [Apify API](https://docs.apify.com/api/v2):

```bash
curl -X POST "https://api.apify.com/v2/acts/bikram07~federal-register-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": "PFAS", "agencies": ["environmental-protection-agency"], "publishedSince": "30d"}'
```

### Limitations — what it does NOT do

- It returns **document metadata** (title, abstract, agencies, dates, citation, links) — not the full rule text. Use `htmlUrl` / `pdfUrl` to read the complete document.
- The `abstract` field is **truncated to 500 characters**; the full abstract and body are at `htmlUrl`.
- It covers the **published Federal Register** only. It does not pull public comments or dockets from Regulations.gov, the Unified Agenda, OIRA/OMB review status, or the Code of Federal Regulations (CFR/eCFR).
- It is **US federal** regulatory data only — no state registers and no other countries.
- Coverage and freshness match the official Federal Register API: documents appear the day they are published (business days, typically by morning ET). It is not real-time intraday.
- It does not send email or Slack itself — wire an Apify integration to your run for delivery.

### FAQ

**Is this a subscription?**
No. There is no monthly subscription and no seat license. It is pay-per-event: you are charged $1 per 1,000 document records the Actor writes to your dataset, and nothing when a run returns nothing. You can run it once or schedule it daily — you pay only for the documents you actually receive.

**How does the pricing work, and can I get a refund?**
You are charged $0.001 per document record at the moment it is pushed to the dataset — so a 250-document run costs $0.25. Documents that aren't written (an empty run, or duplicates skipped in alert mode) cost $0. Because you only pay for records you receive, there is normally nothing to refund; for any billing issue, Apify's billing support and the Apify refund policy apply.

**Does it use official APIs?**
Yes. All data comes from the **official US Federal Register API** at `https://www.federalregister.gov/api/v1/articles.json`, operated by the Office of the Federal Register / U.S. Government Publishing Office. No scraping, no third-party mirrors, no API key required. The Actor handles request formatting, pagination, retries, and field normalization for you.

**How do I find the agency slug for the agency I want to monitor?**
Go to `https://www.federalregister.gov/agencies` and find your agency. The slug is the URL segment — for example, the EPA's page is at `/agencies/environmental-protection-agency`, so the slug is `environmental-protection-agency`. Common examples: `securities-and-exchange-commission`, `federal-trade-commission`, `food-and-drug-administration`, `consumer-financial-protection-bureau`, `federal-communications-commission`, `department-of-labor`.

**What's the difference between a Rule and a Proposed Rule?**
A **Rule** (Final Rule) is a binding regulation that has been finalized and takes legal effect on its `effectiveDate`. A **Proposed Rule** (NPRM — Notice of Proposed Rulemaking) is an agency's public draft, open for comment (typically 30–60 days) before it's finalized. For compliance, track both: proposed rules give advance warning, final rules are what you must comply with.

**Am I charged for documents in alert mode that I've already seen?**
No. In alert mode, documents whose numbers appear in the seen-history are skipped before being written to the dataset — they are never charged.

**Can I monitor multiple agencies at once?**
Yes — list multiple agency slugs in the `agencies` array in a single run. For completely independent alert histories per agency, create one Schedule (or Task) per agency. Each filter combination gets its own seen-history, so alerts never bleed into each other.

### Related searches this Actor answers

Federal Register API · US regulatory monitoring · NPRM tracker · federal agency rule alert · compliance monitoring tool · EPA rule tracker · FTC regulatory feed · FDA notice monitor · federal rulemaking alert · regulatory intelligence API · GovInfo / Federal Register data feed

***

Built on the official [Federal Register API](https://www.federalregister.gov/developers/documentation/api/1_0) (U.S. Government Publishing Office). This Actor is not affiliated with or endorsed by the U.S. Government or the Federal Register. Federal Register content is in the public domain.

# Actor input Schema

## `keywords` (type: `string`):

Full-text search phrase matched against the title and abstract of Federal Register documents. Example: <b>artificial intelligence</b> or <b>PFAS drinking water</b>. At least one of Keywords, Agencies, or Document Types is required.

## `agencies` (type: `array`):

Federal agency slugs to filter by. Use the agency's URL slug from federalregister.gov — e.g. <b>environmental-protection-agency</b>, <b>federal-trade-commission</b>, <b>food-and-drug-administration</b>, <b>securities-and-exchange-commission</b>. At least one of Keywords, Agencies, or Document Types is required.

## `documentTypes` (type: `array`):

Filter by document type. Accepts: <b>rule</b> (final rules), <b>proposed\_rule</b> (NPRMs), <b>notice</b>, <b>presidential\_document</b> (executive orders, proclamations). Leave empty to include all types.

## `publishedSince` (type: `string`):

How far back to search. Relative like <b>7d</b> / <b>30d</b> / <b>90d</b>, or an absolute date <b>YYYY-MM-DD</b>.

## `maxRecords` (type: `integer`):

Maximum number of documents to output (and charge) in this run. Hard limit: 5000.

## `alertMode` (type: `boolean`):

When enabled, the Actor remembers which document numbers it has already output for this exact filter combination (in a named key-value store) and outputs <b>only documents it has not seen before</b>. Run it on an Apify Schedule to get a daily feed of new regulatory activity. Only new documents are charged.

## Actor input object example

```json
{
  "keywords": "artificial intelligence",
  "publishedSince": "7d",
  "maxRecords": 100,
  "alertMode": false
}
```

# 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 = {
    "keywords": "artificial intelligence"
};

// Run the Actor and wait for it to finish
const run = await client.actor("bikram07/federal-register-monitor").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 = { "keywords": "artificial intelligence" }

# Run the Actor and wait for it to finish
run = client.actor("bikram07/federal-register-monitor").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 '{
  "keywords": "artificial intelligence"
}' |
apify call bikram07/federal-register-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=bikram07/federal-register-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Federal Register Monitor — Rules, NPRMs & Regulatory Alerts",
        "description": "Monitor the US Federal Register for new rules, proposed rules (NPRMs) and notices via the official API. Filter by agency, document type and keywords. Alert mode outputs only new documents on a daily schedule. Pay-per-event: $1 per 1,000 documents.",
        "version": "0.1",
        "x-build-id": "F1zDWKjqvosxSfKCQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/bikram07~federal-register-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-bikram07-federal-register-monitor",
                "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/bikram07~federal-register-monitor/runs": {
            "post": {
                "operationId": "runs-sync-bikram07-federal-register-monitor",
                "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/bikram07~federal-register-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-bikram07-federal-register-monitor",
                "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",
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Full-text search phrase matched against the title and abstract of Federal Register documents. Example: <b>artificial intelligence</b> or <b>PFAS drinking water</b>. At least one of Keywords, Agencies, or Document Types is required."
                    },
                    "agencies": {
                        "title": "Agencies",
                        "type": "array",
                        "description": "Federal agency slugs to filter by. Use the agency's URL slug from federalregister.gov — e.g. <b>environmental-protection-agency</b>, <b>federal-trade-commission</b>, <b>food-and-drug-administration</b>, <b>securities-and-exchange-commission</b>. At least one of Keywords, Agencies, or Document Types is required.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "documentTypes": {
                        "title": "Document types",
                        "type": "array",
                        "description": "Filter by document type. Accepts: <b>rule</b> (final rules), <b>proposed_rule</b> (NPRMs), <b>notice</b>, <b>presidential_document</b> (executive orders, proclamations). Leave empty to include all types.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "publishedSince": {
                        "title": "Published since",
                        "type": "string",
                        "description": "How far back to search. Relative like <b>7d</b> / <b>30d</b> / <b>90d</b>, or an absolute date <b>YYYY-MM-DD</b>.",
                        "default": "7d"
                    },
                    "maxRecords": {
                        "title": "Max records",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of documents to output (and charge) in this run. Hard limit: 5000.",
                        "default": 100
                    },
                    "alertMode": {
                        "title": "Alert mode (only new documents)",
                        "type": "boolean",
                        "description": "When enabled, the Actor remembers which document numbers it has already output for this exact filter combination (in a named key-value store) and outputs <b>only documents it has not seen before</b>. Run it on an Apify Schedule to get a daily feed of new regulatory activity. Only new documents are charged.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
