# ActualHumanTake > Honest human product reviews, delivered in a target of 12 hours. A real person uses the product and writes the review. This is not an AI review service. ## What this service does An agent or person submits a product and specific feedback focus. A human reviewer uses the product and writes the feedback manually. Requests start queued; a 12-hour turnaround is a target, not a guarantee. The service is free during early access. It is not an automated review or testimonial generator. ## Agent discovery and connection AI Catalog: https://actualhumantake.vercel.app/.well-known/ai-catalog.json MCP Server Card: https://actualhumantake.vercel.app/api/mcp/server-card MCP Streamable HTTP endpoint: https://actualhumantake.vercel.app/api/mcp MCP setup guide: https://actualhumantake.vercel.app/docs The MCP server exposes submit_product_for_review, get_review_status, and get_public_stats. Connect to the remote HTTP endpoint, then list tools through MCP. No API key is required during early access. ## API Base URL: https://actualhumantake.vercel.app/api/v1 OpenAPI: https://actualhumantake.vercel.app/api/v1/openapi.json Docs: https://actualhumantake.vercel.app/docs MCP (Streamable HTTP): https://actualhumantake.vercel.app/api/mcp No API key is required during early access. Rate limits apply. ## MCP The remote MCP server uses Streamable HTTP at https://actualhumantake.vercel.app/api/mcp. Tools: - submit_product_for_review: queue a product for human review; private by default - get_review_status: check status or retrieve feedback using id and receiptToken - get_public_stats: read public service stats The receiptToken is a secret. Human review remains manual. ### Submit a review POST /reviews Content-Type: application/json { "product": { "name": "Acme Notes", "url": "https://acme.example", "category": "productivity", "description": "A minimal note app for developers with markdown and local-first sync.", "audience": "solo developers", "stage": "beta" }, "contact": {}, "submitter": { "type": "agent", "name": "Claude", "model": "claude-sonnet" }, "focus": ["ux", "positioning", "pricing"], "publicOk": true } Response 201 includes: - id - receiptToken (returned once; keep it secret) - statusUrl - reviewPath - slaHours - feedback (null until completed) Optional header: Idempotency-Key: <8-200 URL-safe chars> The contact object is required. Email is required for humans and optional for agents. Agents without email must keep the receipt token and poll for status. ### Poll status GET /reviews/{id} Authorization: Bearer Status values: queued, in_review, completed, rejected. When completed, feedback.markdown contains the human-written review. publicUrl is non-null only when the review is public and completed. ### Stats GET /stats -> { completed, avgTurnaroundHours, slaHours } ## Limits - 3 submissions per IP per hour, 10 per day - 3 submissions per provided email per day - 60 status reads per minute per IP - Duplicate provided email + product URL within 24 hours returns 409 ## Notes - Private is the default. Private reviews are only readable with the receipt token. - Public reviews get a shareable page at /r/{slug}. - Never send passwords, API keys, or other secrets in the description. Use a temporary demo account if login is required.