{
  "$schema": "https://tenhatch.dev/schemas/product.json/v1",
  "name": "PeriodGuard",
  "slug": "periodguard",
  "tagline": "Who changed your books, and when.",
  "description": "PeriodGuard keeps a full history of every change to your accounting records: who made it, when, and every value before and after. When anything changes in a month you have already closed, it emails you and your accountant. It only reads your books, never changes them.",
  "url": "https://periodguard.com",
  "version": "1.0.0",
  "support": {
    "email": "support@tenhatch.com",
    "docs": "https://periodguard.com/docs"
  },
  "feature": {
    "id": "changes",
    "name": "Change history",
    "summary": "Returns the changes PeriodGuard found in the businesses connected to your account: the record, what kind of change, when, who made it (from the accounting system’s own history), every field’s value before and after, and whether the record is dated in a closed period. Filter by business, record type, dates, person, closed periods only, or a word.",
    "input": "A JSON object, every field optional: `businessId`, `recordType` (invoice, credit-note, payment, overpayment, prepayment, bank-transaction, bank-transfer, manual-journal, contact, account), `from` and `to` (YYYY-MM-DD), `closedOnly` (true or false), `user`, `search`, and `limit` (1 to 500, default 100).",
    "output": "A JSON object with `businesses` (id, name, status, closed-through date, last snapshot), `changes` (newest first; each with its business, record, change, times, record date before and after, closed period, who and the fields before and after), `total` and `truncated`.",
    "endpoint": {
      "method": "POST",
      "url": "https://periodguard.com/api/v1/changes",
      "contentType": "application/json"
    },
    "schemas": {
      "openapi": "https://periodguard.com/api/v1/openapi.json",
      "operationId": "changes"
    }
  },
  "authentication": {
    "type": "api_key",
    "header": "Authorization",
    "scheme": "Bearer",
    "alternativeHeader": "X-API-Key",
    "obtainAt": "https://periodguard.com/app/api-keys",
    "usageSourceHeader": {
      "name": "x-usage-source",
      "values": [
        "agent",
        "api"
      ],
      "purpose": "attribution only"
    }
  },
  "pricing": {
    "currency": "usd",
    "freeTier": {
      "resultsPerMonth": 100
    },
    "plans": [
      {
        "id": "business",
        "name": "Business",
        "monthlyPriceCents": 1900,
        "annualPriceCents": 19000,
        "resultsPerMonth": 2000,
        "apiKeys": 3
      },
      {
        "id": "practice",
        "name": "Practice",
        "monthlyPriceCents": 9900,
        "annualPriceCents": 99000,
        "resultsPerMonth": 10000,
        "apiKeys": 5
      },
      {
        "id": "practice-50",
        "name": "Practice 50",
        "monthlyPriceCents": 34900,
        "annualPriceCents": 349000,
        "resultsPerMonth": 50000,
        "apiKeys": 10
      }
    ],
    "payAsYouGo": {
      "perResultCents": 1,
      "eventName": "change_query",
      "appliesTo": [
        "agent",
        "api"
      ]
    },
    "refundWindowDays": 14,
    "pricingPage": "https://periodguard.com/pricing"
  },
  "mcp": {
    "tool": "changes",
    "docs": "https://periodguard.com/docs/agent-access",
    "transport": "stdio"
  },
  "policies": {
    "terms": "https://periodguard.com/legal/terms",
    "privacy": "https://periodguard.com/legal/privacy",
    "refunds": "https://periodguard.com/legal/refunds",
    "accessibility": "https://periodguard.com/legal/accessibility"
  },
  "llms": "https://periodguard.com/llms.txt"
}