Quickstart
The fastest path to a working integration is the hedge CLI. Install it, sign
in once, and you can check appetite and submit risks from your terminal or a
script. If you would rather call the REST API directly, skip to
Call the API directly.
Use the CLI
Section titled “Use the CLI”-
Install the CLI.
Terminal window npm i -g hedge-brokerHomebrew and a one-line install script are also available. See the CLI guide for all three options.
-
Sign in.
Terminal window hedge loginhedge loginuses the OAuth 2.1 device flow: it prints a short code and a URL, you approve the sign-in in the broker portal, and the CLI stores a short-lived token for you. Prefer a browser sign-in? Runhedge login --browser. -
Check appetite.
Terminal window hedge appetite "roofing" --state CAYou get back the markets that want that class of business in California, with the matching programs and what each one needs to quote.
-
Create a submission.
Terminal window hedge submit \--insured "Acme Roofing LLC" \--state CA \--lob commercial_general_liability \--narrative "Residential roofing contractor, 12 employees, no prior losses."This creates the submission and returns its id. Add documents with
hedge upload, see what is still needed withhedge requirements, and hand it to Hedge to market withhedge finalize. Runhedge submit --helpfor the full flag list. -
Track it and read everything back.
Terminal window hedge submissions --status marketing --limit 10 # filter your bookhedge status <submission-id> # live per-carrier statushedge documents <submission-id> # finalized documentshedge download <document-id> -o quote.pdf # any document as a PDFhedge policy <policy-id> # full policy detailhedge policy-doc <policy-id> declarations # policy PDFsIds come from the
--jsonoutput ofhedge submissions,hedge documents, andhedge policies.
Call the API directly
Section titled “Call the API directly”Every CLI command maps to a REST endpoint under
https://api.hedgespecialty.com/api/v1. Requests are JSON over HTTPS and carry
a short-lived OAuth 2.1 bearer token in the Authorization header. See
Authentication for how to obtain one.
Check appetite
Section titled “Check appetite”curl -G "https://api.hedgespecialty.com/api/v1/broker/appetite" \ --data-urlencode "q=roofing" \ --data-urlencode "state=CA" \ -H "Authorization: Bearer $HEDGE_TOKEN"Create a submission
Section titled “Create a submission”Creating a submission needs the broker_submit scope. The required fields are
the applicant’s insured_name and a narrative describing the risk;
everything else is optional and helps carriers quote faster.
curl -X POST "https://api.hedgespecialty.com/api/v1/broker/submissions" \ -H "Authorization: Bearer $HEDGE_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "applicant": { "insured_name": "Acme Roofing LLC", "mailing_address": { "line1": "100 Market St", "city": "San Jose", "state": "CA", "zip": "95113" }, "naics": "238160" }, "lines_of_business": ["commercial_general_liability"], "effective_date": "2026-08-01", "narrative": "Residential roofing contractor, 12 employees, no prior losses." }'The response contains the new submission, including its id, which you use to upload documents, poll requirements, and finalize.
No mailing address yet? Send the two-letter primary_state instead. If you
send both, the two states must agree; a conflict returns a 422 that says
exactly what to fix.
List and filter submissions
Section titled “List and filter submissions”GET /broker/submissions returns your brokerage’s book, newest first. All
filters are optional: status (one of intake, preparing, marketing,
quoting, binding, bound, issued, lost, cancelled; an unknown value
returns a 422 with the valid list), search on the insured name, limit
(up to 500) with offset for paging, and updated_since for delta syncs.
curl -G "https://api.hedgespecialty.com/api/v1/broker/submissions" \ --data-urlencode "status=marketing" \ --data-urlencode "search=roofing" \ --data-urlencode "limit=25" \ --data-urlencode "updated_since=2026-07-01T00:00:00Z" \ -H "Authorization: Bearer $HEDGE_TOKEN"Fetch one submission for the full picture: status, per-carrier marketing roll-up, and documents on file.
curl "https://api.hedgespecialty.com/api/v1/broker/submissions/$SUBMISSION_ID" \ -H "Authorization: Bearer $HEDGE_TOKEN"Download a document
Section titled “Download a document”List a submission’s finalized documents (rendered ACORDs, supplements, your uploads), then stream any of them as a PDF with the same bearer token:
curl "https://api.hedgespecialty.com/api/v1/broker/submissions/$SUBMISSION_ID/finalized-documents" \ -H "Authorization: Bearer $HEDGE_TOKEN"
curl -L "https://api.hedgespecialty.com/api/v1/broker/finalized-documents/$DOCUMENT_ID/pdf" \ -H "Authorization: Bearer $HEDGE_TOKEN" \ -o quote.pdfRead a policy
Section titled “Read a policy”List bound policies, pull one policy’s full detail (term, premium breakdown, your commission, payment terms), and download its documents:
curl "https://api.hedgespecialty.com/api/v1/broker/policies" \ -H "Authorization: Bearer $HEDGE_TOKEN"
curl "https://api.hedgespecialty.com/api/v1/broker/policies/$POLICY_ID" \ -H "Authorization: Bearer $HEDGE_TOKEN"
curl -L "https://api.hedgespecialty.com/api/v1/broker/policies/$POLICY_ID/document/declarations" \ -H "Authorization: Bearer $HEDGE_TOKEN" \ -o declarations.pdfThe document kind is binder, policy, or declarations. Continue in the
API Reference.
Where to go next
Section titled “Where to go next”Set up the OAuth 2.1 device flow, browser sign-in, or a connected app for server-to-server calls. See Authentication.
Learn every command and the --json flag in the CLI guide.
Connect a read-only MCP connector to Claude, ChatGPT, Cursor, or Claude Code.