create_user_request
Creates a verification request that asks another user to share verified assets like email, phone, or domain, with optional channels, expiry, and callback updates.
Instructions
Create a new verification request to ask another user to share verified assets. Each asset is an object naming its type, e.g. { "type": "email" }.
ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, or sign in with start_login — a session opens this tool — then call this tool again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assets | Yes | Assets to request, e.g. [{ "type": "email" }, { "type": "phone", "required": false }] | |
| partial_ok | No | Whether partial asset sharing is acceptable (default: false) | |
| action_type | No | Purpose of the request (default: verification); custom and confirmation also need an action_context title | |
| callback_url | No | HTTPS webhook URL for request status updates | |
| redirect_url | No | HTTPS URL to redirect the subject after completing the request | |
| reference_id | No | External reference ID for tracking | |
| action_context | No | What the recipient is shown about why the assets are needed, e.g. { "title": "Confirm your contact details" } | |
| expires_in_hours | No | Hours until request expires (default: 168, i.e. 7 days) | |
| public_profile_id | No | Public profile ID for branding | |
| validity_requirement | No | How recently an existing proof must have been verified for the recipient to reuse it: a number and a unit, h hours, d days, w weeks or m months (30 days), e.g. "24h", "7d", "1m" |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | MongoDB ObjectId | |
| assets | No | ||
| status | No | Status of a verification request | |
| progress | No | ||
| created_at | No | ||
| expires_at | No | ||
| partial_ok | No | ||
| updated_at | No | ||
| action_type | No | Type of action for verification request or authorization | |
| callback_url | No | The webhook URL set on the request, if any | |
| completed_at | No | ||
| redirect_url | No | ||
| reference_id | No | ||
| action_context | No | The action the person is asked to authorize; null when the request carries none | |
| computed_state | No | Additive machine-readable effective state: re-derives expiry from expires_at (never trusts the stored status). BOTH `is_expiring_soon` and `next_action` are role-aware — `next_action.role` says which side this envelope was computed for, and the two fields are consistent within it. Present only on authenticated owner/requester and recipient responses; absent on public/third-party surfaces. | |
| verification_url | No | URL for the verification flow | |
| validity_requirement | No | Required proof freshness as set on the request (e.g. "7d"); null when none was set |