# UnblockAgents: human help for AI agents

US-only pilot. Submit physical-world blockers for personal review by the operator.
Submitting does not book a provider, guarantee fulfillment or authorize payment.
Agency-approved fixed-price offers: none available. Generic requests are not referrals or bookings.
Intake: open. A2A is not implemented. Remote MCP is available at https://unblockagents.com/mcp.

## When to use
Request a permitted physical visit, a call to a business, offline information or local service quotes.
Novel nonclinical requests are welcome. Clinician-led care is under study and not accepting intake.
Consult pricing concept: provider-confirmed price plus a planned $1 handling fee. No patient quote, booking, checkout, phone collection or prescription is available. Read https://unblockagents.com/consults.
For a nonclinical question or unavailable service, set request_kind to information or future_service. These are inquiries, not purchases or bookings.
Include contact.email for information and future_service so the operator can reply. Do not send an inquiry if the user has not authorized sharing that address.
Do not submit illegal requests, emergencies, medical records, passwords, private keys,
authentication tokens, card or bank details, SSNs or government-ID images.
Only submit with your user’s permission. Minimize personal information.

## Business calls
For a call to a business, include the store name, public phone number (if known), exact item or question, location, and timing.
US locations are eligible for review, but local coverage and same-day availability are unconfirmed.
There is no response-time target, price quote, or fulfillment guarantee. Submission collects no payment and creates no commitment.
The status API does not return the completed-task answer. Supply a contact email for manual result delivery or follow-up.
See GET /api/v1/capabilities for machine-readable business_call availability and delivery details.
Public explanation: https://unblockagents.com/business-calls.

## Create
POST https://unblockagents.com/api/v1/requests
Content-Type: application/json
Idempotency-Key: <private random UUID or random hex string, 32–128 characters>
Generate this key at submission time. If you cannot generate secure randomness, omit the optional header instead of inventing a key.
No account, cookies, CAPTCHA or API key. JSON body:

```json
{
  "summary": "Call a Spokane store about an item",
  "blocker": "The store does not publish current stock online.",
  "desired_outcome": "Ask whether the specified item is in stock today. Do not reserve or purchase it.",
  "source_type": "agent",
  "authorized": true,
  "category": "business_call",
  "country": "US",
  "location": "Spokane, WA",
  "timing": "Today, if available",
  "agent": {
    "name": "Example assistant"
  },
  "contact": {
    "email": "user@example.com"
  },
  "additional_information": "Example store: Example Shop; item: replacement filter ABC-123; public phone: 202-555-0140."
}
```

Required: summary (5–200 characters), blocker and desired_outcome (10–4,000 each),
source_type (agent|human), authorized (true). Country defaults to US; category to other.
Optional: request_kind (work_request|information|future_service), location, deadline (ISO timestamp with timezone), timing, budget, agent,
contact, additional_information, metadata. Budget is optional; if the customer provides a spending ceiling, express it in integer USD cents. No bid is required.
Category is free text, except doctor_consult and medical categories are unavailable.
Metadata is a flat object of scalar values, at most 2,048 characters serialized.
Body limit: 24,576 bytes. Unknown fields are rejected. Unicode values are normalized to NFC.
See [OpenAPI](https://unblockagents.com/openapi.json) for exact schemas and limits.

## Receipt and retries
201 returns request_id, status, created_at, status_url and message. Save status_url privately.
Same key and normalized payload within 24 hours: 200 with the same request and status URL.
Different payload with that key: 409. After 24 hours, key reuse can create a new request.
Keys must be unpredictable and private because they can replay a receipt.

## Status
GET the returned status_url. Poll at most once per minute; no login is needed.
Status contains only request_id, status, timestamps and a generic message, never request text.
The URL is a bearer capability. Anyone holding it can see sparse status.
Requests expire after 90 days; expired or unknown tokens return 404.
Status does not contain the completed-task answer. Include a contact email if you need a result or follow-up.
Contact email is optional in the API. Callback URLs are stored only;
the application never fetches them or sends webhooks. Operator notification contains only a generated request ID, not your submitted text.

## Errors and limits
Errors use {"error":{"code":"...","message":"...","fields":{},"correlation_id":"..."}}.
400 malformed JSON/key; 403 cross-site browser submission; 409 conflicting retry;
413 oversized body; 415 wrong media type; 422 invalid data/unavailable service;
429 rate limit or daily pilot capacity (honor Retry-After); 503 intake paused; 500 internal error.
Limits: approximately 3 submissions and 60 status reads per IP per minute per edge location, plus 25 accepted submissions globally per UTC day.
Shared IPs share a quota. Edge limits are approximate; daily capacity is enforced in D1.
Retry transient failures with exponential backoff and the SAME idempotency key.

## Discovery
MCP Streamable HTTP endpoint: https://unblockagents.com/mcp (no account or API key).
Tools: get_capabilities, list_services, submit_request, get_request_status, open_request_form.
open_request_form offers an optional MCP Apps HTML view in compatible clients and a URL fallback elsewhere. It does not submit a request.
MCP uses the same manual-review intake and private status as REST; it does not book a provider.
[Fixed-price offers](https://unblockagents.com/api/v1/offers): Empty until agency terms and service details are approved.
[Capabilities](https://unblockagents.com/api/v1/capabilities)
[Build progress](https://unblockagents.com/progress.json)
[Business-call pilot details](https://unblockagents.com/business-calls)
[Privacy](https://unblockagents.com/privacy) · [Terms](https://unblockagents.com/terms)
Declared budgets are not quotes or proof of funds. Agent identity is self-reported.