# GovRAMP Program Participants Directory (`tehsnarf/govramp-program-participants`) Actor

Scrapes GovRAMP's public Authorized Product List, Progressing Product List, and Accredited 3PAO directory into normalized, change-trackable JSON rows for cloud security/compliance procurement research.

- **URL**: https://apify.com/tehsnarf/govramp-program-participants.md
- **Developed by:** [Chris Hoover](https://apify.com/tehsnarf) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

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

Scrapes **[GovRAMP's Program Participants directory](https://govramp.org/program-participants)** — the authoritative public list of cloud products/services authorized (or in-process) under the GovRAMP framework, plus the accredited Third-Party Assessment Organization (3PAO) directory — into clean, structured JSON. All three tables (Authorized Product List, Progressing Product List, 3PAO directory) are normalized into one dataset with stable row IDs for run-over-run change tracking.

### Why use this Actor?

GovRAMP (formerly StateRAMP) governs cloud security authorization for state/local/tribal government buyers, mirroring FedRAMP at the SLED level. The public page is a filterable HTML table with no bulk export API — this Actor is useful for:

- **Cloud vendors and resellers** checking their own or a competitor's authorization status, impact level, and assigned 3PAO.
- **SLED procurement teams and integrators** cross-referencing GovRAMP-authorized products before a purchase decision.
- **Compliance/security researchers** tracking status changes (e.g. Provisionally Authorized → Authorized) across scheduled runs using each row's stable `row_id`.
- **AI agents and research pipelines** that need machine-readable public-sector cloud compliance data instead of manually filtering a web table.

### How to use this Actor

1. Click **Try for free** (or **Run**) on this Actor's page.
2. Leave the default **Start URL** as the GovRAMP Program Participants page (the same content is also mirrored at `stateramp.org/product-list/`).
3. Set **Max items** to the number of rows you want (default 400 — comfortably above the current combined total across all three tables).
4. Click **Start** and download your results as JSON, CSV, or Excel from the **Output** tab.

### Input

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | GovRAMP Program Participants page URL. Defaults to `govramp.org/program-participants`. |
| `maxItems` | integer | Maximum number of rows to return across all three tables combined (default 400). |

### Output

Each item represents one row from one of the three GovRAMP tables:

```json
{
  "organization_name": "Box, Inc.",
  "service_offering": "Box Enterprise Cloud Content Collaboration Platform",
  "service_model": "SaaS, Paas",
  "impact_level": "High",
  "status": "Authorized",
  "assessor_3pao": "Schellman & Company",
  "row_id": "216862731115",
  "source_section": "APL",
  "source_url": "https://govramp.org/program-participants"
}
````

3PAO-directory rows use the same shape, with `organization_name` and `assessor_3pao` both set to the assessment firm's name and the product-specific fields left blank:

```json
{
  "organization_name": "A-LIGN",
  "service_offering": null,
  "service_model": null,
  "impact_level": null,
  "status": null,
  "assessor_3pao": "A-LIGN",
  "row_id": "208248792243",
  "source_section": "3PAO",
  "source_url": "https://govramp.org/program-participants"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
|---|---|
| organization\_name | Company/organization name |
| service\_offering | Product/service name (Authorized/Progressing Product List rows only) |
| service\_model | SaaS / PaaS / IaaS, etc. (APL/PPL rows only) |
| impact\_level | GovRAMP impact level, e.g. Low / Moderate / High (APL/PPL rows only) |
| status | Authorization status, e.g. Authorized / Provisionally Authorized / Ready / Progressing (APL/PPL rows only) |
| assessor\_3pao | Third-Party Assessment Organization named for this product, where GovRAMP has published one; for 3PAO-directory rows this equals `organization_name` |
| row\_id | GovRAMP's own stable row identifier — use this to detect status changes across scheduled runs |
| source\_section | One of `APL` (Authorized Product List), `PPL` (Progressing Product List), or `3PAO` (assessor directory) |
| source\_url | Page URL the row was scraped from |

### Pricing

This Actor is priced at **$5 per 1,000 results**. Example costs:

| Results | Cost |
|---|---|
| 100 | $0.50 |
| 500 | $2.50 |
| 1,000 | $5.00 |
| 5,000 | $25.00 |

### Tips

- The full page currently holds under 400 combined rows across all three tables (~153 APL + ~194 PPL + ~30 3PAO) — a single run with the default `maxItems` captures everything in one pass.
- Schedule this Actor on a recurring basis and diff on `row_id` + `status` to catch authorization changes (e.g. Provisionally Authorized → Authorized) without re-reading the whole page by eye.

### FAQ

**Is this legal?** Yes — this Actor only reads GovRAMP's public program-participants page. No login is required and the site's `robots.txt` does not restrict this page.

**Does this include personal contact information?** No. GovRAMP's per-row detail panel includes a point-of-contact name/email, but this Actor intentionally does not extract it — only organization- and product-level fields are collected.

**Found an issue?** Use the Issues tab on this Actor's Apify Store page to report it.

# Actor input Schema

## `startUrls` (type: `array`):

GovRAMP Program Participants page URL(s). All three tables (APL, PPL, 3PAO) render on this one page.

## `maxItems` (type: `integer`):

Maximum number of rows to scrape across all three tables (APL + PPL + 3PAO)

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://govramp.org/program-participants"
    }
  ],
  "maxItems": 400
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("tehsnarf/govramp-program-participants").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("tehsnarf/govramp-program-participants").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 '{}' |
apify call tehsnarf/govramp-program-participants --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tehsnarf/govramp-program-participants",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GovRAMP Program Participants Directory",
        "description": "Scrapes GovRAMP's public Authorized Product List, Progressing Product List, and Accredited 3PAO directory into normalized, change-trackable JSON rows for cloud security/compliance procurement research.",
        "version": "1.0",
        "x-build-id": "sEwgKvgV3C5mO6gTk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tehsnarf~govramp-program-participants/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tehsnarf-govramp-program-participants",
                "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/tehsnarf~govramp-program-participants/runs": {
            "post": {
                "operationId": "runs-sync-tehsnarf-govramp-program-participants",
                "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/tehsnarf~govramp-program-participants/run-sync": {
            "post": {
                "operationId": "run-sync-tehsnarf-govramp-program-participants",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "GovRAMP Program Participants page URL(s). All three tables (APL, PPL, 3PAO) render on this one page.",
                        "default": [
                            {
                                "url": "https://govramp.org/program-participants"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of rows to scrape across all three tables (APL + PPL + 3PAO)",
                        "default": 400
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
