CrowBar | Release notes | Corvus Skip to main content

Release notes

11-12-2026 Update

You can now retrieve and list your quote requests and policies with only your X-API-KEY. Send neither X-USER-EMAIL nor X-USER-NAME and you no longer need to know which broker a record belongs to, so the quoteRequestId or policyId in a webhook is enough to look it up. Requests that send both user headers work as before.

  • quoteRequest and policy return a record only if your API partner submitted it. Any other record returns an unauthorized error, even if it belongs to a brokerage you work with.
  • quoteRequests and policies require a brokerageId for a brokerage linked to your API partner, and list only that brokerage's records that your API partner submitted.
  • Other queries still need both user headers. Mutations always require both user headers so that every change is attributed to a broker. A mutation sent with only your API key is rejected.

See Authentication.

11-11-2026 Update

You can now choose which webhook events your partner receives, in the Developer Portal. Every event type is on by default, except Renewal Solicitation Open, which we turn on when your partner is enrolled in renewal webhooks. Your other existing webhooks are unchanged.

  • An event your partner is not subscribed to is skipped, not retried. Subscriptions are checked when the webhook is sent, so a change also applies to webhooks that were already queued.
  • New event types we add later are opt-in. You receive one only after you subscribe to it.
  • Test Webhook in the sandbox respects your subscriptions, and can now send Policy Issued.

See Event subscriptions.

11-10-2026 Update

Added the Agent setup page. Copy its prompt into your AI coding agent and the agent installs the Corvus API skill, which points it at these docs. You can read the skill first: View SKILL.md.

The skill carries a Last updated date, 2026-11-10 for this release. Changes to the skill are recorded in these release notes.

11-06-2026 Update

quote_ready payloads now include documentsReady, a boolean that tells you which stage the quote is in. Existing keys are unchanged.

  • false means the rated quote options are available, but the quote document is not ready to download yet.
  • true means the quote document is ready to download. Query the quote request for the quote document once you receive this.

The two Quote Ready events for a quote were previously identical apart from timestamp. Use documentsReady to tell them apart. See Quote Ready.

10-19-2026 Update

The sandbox environment has moved to new infrastructure. Production is unaffected.

  • Sandbox API keys have changed. Get your new key from the sandbox Developer Portal (see Authentication).
  • Sandbox data has been reset. Accounts, API keys, clients, quotes, policies, and submissions created before this date are no longer available.
  • Endpoints are unchanged. Continue to send sandbox requests to https://api-sandbox.corvusinsurance.com/q.
  • Sandbox webhooks now originate from new IP addresses. Update your sandbox allowlist (see Subscribe to webhooks).

Webhook documentation updates:

  • All webhook payloads include brokerageId.
  • Renewal Quote Ready payloads include expiringPolicyNumber.
  • Documented the Policy Non-Renewal event, delivery and retry behavior, and the apiPartner query.

07-08-2026 Update

Changes to the Smart Cyber optionalData array:

  • Removed extra key values emailFilter, emailFilterVendor, and vpnAndMfa

06-09-2026 Update

Changes to the natureOfBusiness optional datum:

  • Smart Cyber: must be a 6-digit NAICS code, i.e., "541511". Nature of business names are no longer supported, and the Smart Cyber Nature of Business list has been removed (see Update Quote Request (Smart Cyber)).
  • Smart Tech E+O: accepts either a 6-digit NAICS code or a nature of business name (see Smart Tech E+O Nature of Business).

04-28-2026 Update

Webhook payloads include brokerageId, so you can tell which brokerage an event belongs to. Renewal Quote Ready payloads also include expiringPolicyNumber (see Webhooks).

04-15-2026 Update

The endorsementCoverages field is now the recommended way to retrieve endorsements for all product lines, including Smart Cyber, Cyber Retail, and Tech E&O. This field returns a flat list of endorsements with a consistent shape:

  • code — unique form code identifying the endorsement
  • name — human-readable name of the endorsement
  • details — JSON object containing endorsement-specific values such as limits and deductibles; returns {} when the endorsement has no configurable fields

The legacy endorsements connection is deprecated and should no longer be used. Migrate your integration to use endorsementCoverages instead. Updated sample queries are available in Get Quote Request (Smart Cyber) and Get Quote Request (Tech E&O).

03-02-2026 Update

The Developer Portal is available to API partners by invitation (see Developer Portal). In the portal you can:

  • View and regenerate your API key. Regenerating takes effect immediately and also changes the key used to sign webhooks.
  • View and edit your webhook URL.
  • In the sandbox, send test webhooks, seed renewal data, bind and issue quoted submissions (Bind & Issue), and start renewals for bound or issued policies (Start Renewal).

12-16-2025 Update

Quote requests submitted through the API are now automatically closed 45 days after quotes are shared, up from 30 days. Auto-closed quote requests have status CLOSED and a decline reason of EXPIRED (see FAQ).

08-19-2025 Update

Added the policy_non_renewal webhook, sent when an expiring policy will not be renewed. Available by enrollment (see Policy Non-Renewal).

07-25-2025 Update

Added the policy_issued webhook, sent when a policy is issued (see Policy Issued).

07-23-2025 Update

Any 2xx response to a webhook now counts as successful delivery. Previously only a 200 response did (see Delivery and Retries).

07-21-2025 Update

Added the renewal_solicitation_open webhook, sent when a renewal submission opens for an expiring policy. Available by enrollment (see Renewal Solicitation Open).

07-15-2025 Update

The quote_ready webhook is now also sent when a renewal is auto-quoted. Available by enrollment (see Quote Ready).

07-09-2025 Update

Added the renewalQuoteRequest query, which returns the renewal quote request for an expiring policy number (see Get Renewal Quote Request).

05-17-2024 Update

The control question similarCoverage no longer accepts uncertain as an answer choice. Now, the only two acceptable options are yes and no.

05-13-2024 Update

Corvus now returns mocked results for scans within the sandbox environment of the API. In other words, any standard url given in the sandbox environment will return an example, passing Corvus scan result after a slight delay. Quotes and policies submitted via the API should still have access to the same information made available via the scan (ex. the cyberRiskScore in GetQuoteRequest), but these values will be based on an example url rather than evaluated on the url provided in the API request.

If a specific scan result (ex. a scan returned with a vulnerability) is required, a list of test urls are available to fit these scenarios: Create Client: Test Domains.

09-21-2023 Update

Added the ability to add a policyholder contact for a client who will receive emails from Corvus about scans (see Update Policyholder Contact).

09-05-2023 Update

Submissions sent via the updateQuoteRequest mutation now evaluate the Aggregate/Deductible (A/D) requested and adjust them to be favorable for Auto Quoting.

Details

This check evaluates each requested A/D ($10 Million / $5000) for Auto Quote (AQ) eligibility. If it is not something that we are authorized to AQ, we will adjust the Limit or Retention to the next closest AQ eligible value. A Subjectivity is added to the Submission when this is applied indicating the originally requested A/D was changed.

This will yield a higher ratio of Auto Quote Eligible submissions.

The following subjectivity will be included on the submission if any changes are made to the requested A/D:

Please note the limit and/or retention requested do not fit our current auto-quoting eligibility. We have offered the closest available option(s). Please contact your underwriter with any questions.

Example

A submission is sent with a limit that we will not Auto Quote, ($10 Million / $5000), and a ($1 Million / $5000) A/D. Previously, this request would have required intervention from an Underwriter. (eg. "isAutoQuoteEligible": false).

Copied
# limits -> [{"aggregateCents": 1000000000, "deductibleCents": 500000}, {"aggregateCents": 100000000,"deductibleCents": 500000}]mutation UpdateQuoteRequest($id: ID!, $action: Action!, $brokerQuoteRequestInfo: BrokerQuoteRequestInput!) {    updateQuoteRequest(id: $id, action: $action, brokerQuoteRequestInfo: $brokerQuoteRequestInfo) {        isAutoQuoteEligible        brokerAutoQuoteIneligibleReasons        status        limits {            aggregateCents            deductibleCents        }    }}

There are no results for brokerAutoQuoteIneligibleReasons and isAutoQuoteEligible is true. Additionally, the AQ Eligible limit/retention ($1 Million / $5000) is unchanged. The pair that was not AQ Eligible was adjusted to the closest AQ Eligible pair ($10 Million / $5000) → ($2 Million / $25000).

06-12-2023 Update

A new field claimsComment is now available in the optionalData object, for Cyber and Tech E+O insurance, to submit additional information related to past claims.

03-02-2023 Update

API version v2.0 transitions quote status from SUBMITTED to QUOTES_SHARED immediately after the quote has been rated, without waiting for the PDF quote letter to finish generating. The PDF quote letter will continue to generate asynchronously. Now, quote request details will be available prior to PDF generation.

Ensure that your system is setup to support version v2.0

  1. If using Webhooks:
    • The quote ready webhook will be triggered twice: The first time once rating is complete, and the second time once the quote documents are generated.

      Once the first webhook triggers, you may retrieve the underlying quote data to show it on your platform. Once the second webhook triggers, you may retrieve the data again; this time, it will include the generated quote documents.

      The quoteRequest { quoteData { edges { node { upload { url } } } } } will be null for the first trigger, and will contain the pre-signed url once the quote documents are finished generating.

      Since 11-06-2026, the documentsReady key in the webhook payload is false for the first trigger and true once the quote documents are ready, so you can tell the two apart.

  2. If Polling:
    • Now that the quote_request.status field will change to QUOTES_SHARED as soon as rating is complete, you must poll twice: first for the initial quote data and second for the PDF quote documents.

      First, watch the status and when it changes to QUOTES_SHARED you may render the data in your platform. When the quote status changes to QUOTES_SHARED, you may fetch the quote details and render the data in your platform. Continue polling and watch for the quoteRequest { quoteData { edges { node { upload { url } } } } }. It will return either a url to the quote documents, or null.

How to upgrade to Version v2.0

  1. Include the header X-API-VERSION: v2.0

11-04-2022 Update

Added the ability to request brokerAutoQuoteIneligibleReasons variable in the updateQuoteRequest response in order to see why a quote is ineligible for auto-quoting.

10-14-2022 Update

Removal of submitCyberSurveyAnswers mutation. This survey submission fulfilled responding to Corvus's Ransomware Supplemental Application. With our latest Smart Cyber application updates (see 08-01-2022 Update), many of the Ransomware Supplemental questions are now asked on the main form application. While we will still accept submitCyberSurveyAnswers requests, note that it is not required in order to receive a quote and will now only be requested as needed by the underwriter as a pre-bind subjectivity.

09-29-2022 Update

Addition of automated end-to-end testing in our sandbox environment. This enables you to submit a quote request and get an instantly rated and shared quote, submit a quote request and get an instantly declined quote, or submit a bind request and get instantly confirmed. (see Testing Corvus API)

08-26-2022 Update

Added the ability to update a broker's address, allowing for the automatic assignment of an underwriter. (see Update Broker)

08-12-2022 Update

Addition of underwritingDataCredentials and completeUpload mutations: you can now upload supporting documents, such as a third-party application, for an existing quote request.

08-01-2022 Update

Update question set for the Smart Cyber and Smart Tech E+O applications.

Changes to the optionalData array:

Reworded Questions

  • grossAnnualRevenue
  • numberOfPiiRecords
  • formalBackups
  • pciCompliantPayments
    • Removed extra key values pciCompliance and creditCardTransactions
  • encryptPos
  • multiFactorAccess
  • multiFactorAuthenticationEmails
  • interruptions
  • vpnAndMfa

New Questions

  • paymentRequestValidation

Changed Answer Values

  • Remove answer option multiFactorAccess
  • Remove answer option multiFactorAuthenticationEmails

Removed Questions

  • multiFactorAuthenticationBackups
  • encryptDevices
  • claimsAmount
  • segregatedBackups

06-21-2022 Update

Update to the policy_bound webhook to include quoteRequestId in the body of the notification.

06-10-2022 Update

Addition of createBindLink mutation: you can now request a temporary link that will navigate the broker user directly to the Crowbar. From there, they will be able to view and select a quote option to bind from the broker’s dashboard. This link will work as a one-time link into the Crowbar. The user will not need to enter in their login credentials.