Documentation
Start here
Surfaces
API change watches
Review documentation changes with the evidence beside you.
Keep a public API page as a baseline for your project. Check it manually or enable daily checks. PersistMemory compares the returned text and keeps the latest change for review in your workspace. A page change is evidence to investigate; it does not prove your integration is broken.
Open API change watchesUse the web workspace
- Choose an active Space you own, name the watch, and enter an official public documentation or changelog URL. Save the first reading as your baseline.
- Watches start in Manual. To enable daily checks, open the saved watch, choose Daily under Schedule, and choose Save schedule. The page shows the saved mode and next check in UTC. Choose Manual and save to pause daily checks.
- Choose Check now when you want to compare a later reading. Open the old and new text, source URLs, reading times, warnings and content hashes.
- If the change is the one you reviewed, select the review checkbox and accept it. Only that exact pending reading becomes the new baseline.
A failed or blocked reading keeps both your baseline and any pending change. Refresh saved state after a conflicting or uncertain request. Refreshing reads the saved result; it does not run another crawl.
What daily checks do
The first check is due 24 hours after enabling Daily. Checks run roughly once a day, with possible maintenance queue delays; the next check time is a due time, not a guaranteed start time. A manual check resets the next daily check to 24 hours later. A scheduled attempt advances the next daily check even if the source fails or the process is interrupted.
Existing manual watches stay manual until their owners enable Daily. Return to API change watches in your workspace to review results, last failed attempts, and retained pending evidence. Daily checks never accept a baseline automatically, send notifications or emails, analyze your code, or repair your integration.
If an older API response omits the schedule, the web page shows it as unknown and disables schedule controls. Refresh saved state to verify it. A missing field does not establish whether daily checks are enabled or disabled.
Use local baselines in the CLI
The CLI uses the same comparison rules, with snapshots stored on your computer. Local CLI watches and web watches have separate storage; they do not synchronize.
pm auth login
pm watch add postgres https://www.postgresql.org/docs/release/
pm watch check postgres --output json
# Review the change, then copy its afterHash:
pm watch accept postgres --hash <afterHash>For CI, pm watch check postgres --fail-on-change --output json exits 3 when changed and 0 when unchanged. Keep the watch directory between CI runs. Other failures use other nonzero statuses. Install the CLI.
Connect through the API
These routes use the base https://api.persistmemory.com/api/v1 and your account’s Bearer credential. Keep credentials on your server. Reads require read scope; mutations require write scope. A watch belongs to its account and an owned Space.
GET /api-watchesList your watches with schedule and nextCheckAt; optional ?spaceId= narrows to one owned Space.
POST /api-watchesSave { name, url, spaceId }. The first reading becomes the baseline.
GET /api-watches/:idRead saved snapshots, warnings, version, schedule, nextCheckAt and any pending comparison.
PATCH /api-watches/:id/scheduleSend { version, schedule: "manual" | "daily" }. Returns the updated watch detail with an incremented version.
POST /api-watches/:id/checkSend { version } from your current saved view. Read the source once.
POST /api-watches/:id/acceptSend { version, hash } using the exact pending hash you reviewed.
DELETE /api-watches/:idSend { version } to remove this watch and its saved snapshots.
The schedule is manual or daily. Daily watches always include a nonempty ISO nextCheckAt; manual watches omit it. Enabling Daily requires an active Space you own. Pausing with Manual is allowed in an archived Space you own. Schedule changes conflict while a check holds a live lease.
Use the exact version and pending hash from the displayed result. Schedule saves increment the version, so an older review can become stale. On conflict or a lost or unreadable response, refresh and review the saved result before another mutation. Do not blindly repeat the request or substitute a newer version or hash automatically.
Coverage, cost and limits
- Checks run manually or daily after you enable the schedule. Review results in the workspace; there is no notification delivery, automatic baseline acceptance, repository impact analysis or repair PR in this workflow.
- Each account can save ten web watches. Only the baseline and latest pending reading are retained. Deleting a watch frees capacity; archiving its Space does not.
- The reader covers one public page and at most 12,000 extracted characters. Prefer a short changelog or an endpoint-specific page. Navigation and formatting changes can appear in a comparison.
- Results may come from a five-minute cache, and checks of a saved web watch are at least 60 seconds apart. A successful check is a successful reading, which may be cached.
- These comparisons use the existing public reader, no paid crawler and no AI model. Pages requiring sign-in, CAPTCHA completion or browser execution may be unavailable.
- You can read, pause existing daily checks, or delete watches in an archived Space when no check is in progress. Unarchive the Space before enabling Daily, checking now, or accepting changes. Shared Spaces are not supported for watches.