# HourProof > Volunteer and service-hour ledger for students. Log hours, get supervisor sign-off by one-time URL, and print an A4 certificate. Service URL: https://hourproof.rowb.app/ MCP endpoint: https://hourproof.rowb.app/mcp (Streamable HTTP, JSON-RPC. Bearer API key required for tool calls.) Server card: https://hourproof.rowb.app/.well-known/mcp/server-card.json ## Pages - https://hourproof.rowb.app/ - https://hourproof.rowb.app/signup - https://hourproof.rowb.app/pricing - https://hourproof.rowb.app/privacy - https://hourproof.rowb.app/terms ## Endpoints - POST https://hourproof.rowb.app/api/check-hours (bearer key) - check a list of hour entries for internal consistency - POST https://hourproof.rowb.app/api/records (bearer key) - open an hour ledger for one student - POST https://hourproof.rowb.app/api/records/{id}/entries (bearer key) - append logged hours - POST https://hourproof.rowb.app/api/records/{id}/signoff (bearer key) - create a one-time supervisor URL - GET https://hourproof.rowb.app/api/records/{id} (bearer key) - totals, breakdown, and every issue found - GET https://hourproof.rowb.app/api/rules (bearer key) - the exact rule table, and what is explicitly not claimed - GET https://hourproof.rowb.app/r/{id} - human-readable record - GET https://hourproof.rowb.app/r/{id}/certificate.svg - A4 certificate (794x1123) with a supervisor signature line - GET https://hourproof.rowb.app/s/{token} - one-time supervisor sign-off page (no account needed, single use) ## What this service does not do It does not decide whether any hour counts toward a school, honor society, or award requirement. Only the school or program that set the requirement can do that. It does not verify that work happened - a human supervisor confirms the record. It uses no LLM and no generative model. ## The rule table (every rule is arithmetic or an explicitly-labelled policy flag) - bad_date / future_date: a real calendar date, not in the future - bad_hours / non_positive_hours: hours must be a positive number - hours_over_day: a single entry cannot exceed 24 hours - day_over_24: one date cannot total more than 24 hours (catches duplicates) - missing_activity / missing_organization: each entry must say what was done and where - long_day / long_single_entry: over 8 hours is flagged for supervisor confirmation - this is this service's own policy threshold, not a rule from any school ## Prices (USD) - Anonymous: 3 entries/day, no key - Free key: 20 entries/month, no card — https://hourproof.rowb.app/signup - Entry: $5/month, 500 entries/month - Starter: $9/month, 5000 entries/month Pricing page: https://hourproof.rowb.app/pricing