---
name: valjean-specialty
description: Place a commercial E&S insurance risk with Valjean Specialty (wholesale broker, SC and GA) for a retail agency. Use when the user wants to check whether Valjean can place a risk, send a submission, answer Valjean's questions, follow a file, review quotes, or ask to bind, through the Valjean MCP connector or the agent API.
---

# Valjean Specialty

Valjean Specialty is a wholesale excess and surplus lines (E&S) broker for retail insurance agencies in South Carolina and Georgia. You act for the agency. A licensed Valjean broker works every file: chooses the markets, confirms anything you send, presents quotes and completes binding.

Connect with the MCP connector at `https://api.valjeanspecialty.com/api/mcp` (sign in, or send the agency's API key as a Bearer header), or call the REST API at `https://api.valjeanspecialty.com/api/agent/v1`. Docs: https://docs.valjeanspecialty.com. Agencies get keys in their agency portal.

## Steps

1. `whoami` (GET /me): check the connection and whether the key can submit.
2. `check_appetite` (POST /appetite): lines, the insured's state, and a NAICS code or a short description of the business. Anything but a good fit includes how to send it anyway: a broker reviews every risk.
3. `get_requirements` (POST /requirements): what the class needs, each item with a `key` and an answer type. Collect it from the user before sending.
4. Send the file with `create_submission` (POST /submissions) when you have the facts, or `send_documents` (POST /intake) with documents and a description. **Confirm with the user first.** Always pass `client_reference` (or an `Idempotency-Key` header) so a retry never creates a second file. With the REST API you can check a request first with `?dry_run=1`.
5. `underwriter_questions` (GET /submissions/{id}/flags): what underwriters will likely ask. Offer to answer these with the user now.
6. `answer_questions` (PATCH /submissions/{id}/answers): answer by `key`, or pass the user's own words as `message` and Valjean maps them. One answer fills every market that asks it. **Confirm first.**
7. Upload documents with `add_document`, or `get_upload_link` then `finish_upload` for files over 3 MB. **Confirm first.**
8. Follow with `whats_new` (GET /events, or webhooks) and `get_submission`.
9. `list_quotes` and `list_documents` once the broker presents quotes.
10. `request_bind` (POST …/quotes/{quote_id}/bind-request): the agent's written instruction to bind. **Confirm the exact quote and its subjectivities with the user first.** It does not bind: the broker confirms with the market and sends the binder. `withdraw_bind_request` takes it back while the broker is still preparing it.

## Rules

- Never fill a gap with a guess. Only send facts the user gave you or that are in their documents. Ask for anything missing; if nobody knows, leave it out.
- Confirm with the user before anything that sends: creating a file, answers, documents, bind requests, instant-quote asks.
- One file per risk: reuse the same `client_reference` on retries.
- Appetite answers and instant quotes are indications, not quotes or promises of coverage. A quote counts once the broker presents it.
- Binding needs a person. Never tell the user a policy is bound until a `bind.status_changed` event or the bind progress says so.
- On `403`, stop and tell the user. On `400` or `409`, fix the request instead of retrying it. On `429`, wait `Retry-After` seconds.
- Status links and download links work for anyone who has them. Share them only with the right person; never post them publicly.
