---
title: "Create a monitoring subscription"
method: POST
path: "/api/v1/pulse"
tags: ["Pulse"]
---

# Create a monitoring subscription

`POST /api/v1/pulse`

## Request

- Base URL: `https://data.useplinth.com`
- URL: `https://data.useplinth.com/api/v1/pulse`
- Auth: API key in header `X-API-Key`

Watch up to 200 EINs on a schedule you choose (hourly to monthly). Each run diffs the organizations against the last run and reports what moved: compliance screen changes, new Form 990 data, new grants in and out of the graph, government funding movement, officer and trustee roster changes, and web press and job-posting signals. The digest is available as JSON, an HTML page, a PDF, and optionally by email.

## Request body

- PulseCreate
  - `eins` string[], required: Up to 200 EINs to watch. Any format — normalized per EIN.
  - `name` string, nullable: A label for the digest header.
  - `frequency` string, nullable: hourly | daily | weekly (default) | monthly.
  - `checks` string[], nullable: Subset of: compliance, filings, grants, gov, people, web. Default all.
  - `email_to` string[], nullable: Up to 5 addresses for digest delivery.
  - `email_mode` string, nullable: activity (default: email only when something changed) | always.
  - `unsubscribe_url` string, nullable: An https link the digest email carries for recipients to stop it.

## Response `200`

Successful Response

- unknown

## Other responses

- `401`: No API key, or a key we do not recognize.
- `402`: The call allowance is spent, the account is inactive, or the endpoint needs a paid plan — the message says which, and names the period it resets on (daily on free and non-profit plans, monthly on Pro).
- `422`: Validation Error

---

[API](https://skmtc.dev/useplinth/apis/plinth-grants-api.md) · [All operations](https://skmtc.dev/useplinth/apis/plinth-grants-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useplinth/apis/plinth-grants-api/revisions/15273cd72ecf?raw)
