Canopy Connect · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Reference Whitelabel API

11 actions 11 updates phrasing extends openapi/canopy-whitelabel-api-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Canopy Connect's API. It is a proposal applied on top of the contract, not a document Canopy Connect publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 11

$.info
$.paths['/tos'].get
$.paths['/widget/pull/consentAndConnect'].post
$.paths['/widget/pull/consentAndDocuments'].post
$.paths['/widget/pull/{pullId}/connect'].post
$.paths['/carriers'].get
$.paths['/carriers/{carrierId}'].get
$.paths['/widget/pull/{pullId}/idv'].post
$.paths['/widget/pull/{pullId}/idvoptions'].post
$.paths['/widget/pull/reconnectToken'].post
$.paths['/widget/pull/{pullId}/servicingAction'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Reference Whitelabel API
  version: 1.0.0
extends: openapi/canopy-whitelabel-api-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 10
- target: $.paths['/tos'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the current terms of service
      effect: read
      questions:
      - Which terms version should my white-label consent screen show?
      - Where do I get the terms of service HTML for my own branded flow?
      instructions:
      - text: Fetch the current terms of service version and HTML.
      - text: Get the terms text to display before asking for consent.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/consentAndConnect'].post
  update:
    x-apievangelist-phrasing:
      intent: Record consent, create a pull and log in to a carrier
      effect: write
      questions:
      - How do I start a pull with my own UI by submitting consent and the user's carrier login?
      - Can I save my own metadata on a pull when it's created?
      - Can a new pull be started specifically to request servicing actions?
      instructions:
      - text: Create a pull on widget {alias} for carrier {carrier} with username token {username}, consent from {device} on terms {version} with wording {language}.
        slots:
          alias: requestBody.public_alias
          carrier: requestBody.insurerName
          username: requestBody.insurerUsername
          device: requestBody.device_identifier
          version: requestBody.terms_version
          language: requestBody.consent_language
      - text: Connect to carrier {carrier} with username token {username} and password token {password}.
        slots:
          carrier: requestBody.insurerName
          username: requestBody.insurerUsername
          password: requestBody.insurerPassword
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/consentAndDocuments'].post
  update:
    x-apievangelist-phrasing:
      intent: Record consent, create a pull and upload documents
      effect: write
      questions:
      - Can a consumer upload their insurance documents instead of logging in to their carrier?
      - What are the file size limits when uploading policy documents to a new pull?
      instructions:
      - text: Create a pull on widget {alias} with documents {documents}, consent from {device} on terms {version} with wording {language}.
        slots:
          alias: requestBody.public_alias
          documents: requestBody.documents
          device: requestBody.device_identifier
          version: requestBody.terms_version
          language: requestBody.consent_language
      - text: Upload {documents} as carrier {carrier} policy documents.
        slots:
          documents: requestBody.documents
          carrier: requestBody.insurerName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/{pullId}/connect'].post
  update:
    x-apievangelist-phrasing:
      intent: Reauthenticate a pull with new credentials
      effect: write
      questions:
      - What do I do when a pull says it's not authenticated?
      - How do I resubmit a consumer's carrier login for an existing pull?
      instructions:
      - text: Reconnect pull {pull} using JWT {jwt} with carrier {carrier} and username token {username}.
        slots:
          pull: path.pullId
          jwt: header.pull-jwt
          carrier: requestBody.insurerName
          username: requestBody.insurerUsername
      - text: Retry login on pull {pull} with password token {password}.
        slots:
          pull: path.pullId
          password: requestBody.insurerPassword
      method: generated
      generated: '2026-10-01'
- target: $.paths['/carriers'].get
  update:
    x-apievangelist-phrasing:
      intent: List supported insurance carriers
      effect: read
      questions:
      - Which insurance carriers can consumers connect to?
      - Can I list only carriers that support particular products like auto or home?
      - How do I get the carriers enabled for my widget?
      instructions:
      - text: List supported carriers.
      - text: List carriers that offer {products}.
        slots:
          products: query.products
      - text: Show the carriers available on widget {alias}.
        slots:
          alias: query.public_alias
      method: generated
      generated: '2026-10-01'
- target: $.paths['/carriers/{carrierId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one supported carrier
      effect: read
      questions:
      - How do I look up the details of a single insurance carrier?
      - What UI attributes are returned for a specific carrier?
      instructions:
      - text: Get carrier {carrier}.
        slots:
          carrier: path.carrierId
      - text: Show carrier {carrier} as configured on widget {alias}.
        slots:
          carrier: path.carrierId
          alias: query.public_alias
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/{pullId}/idv'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit an MFA code for a pull
      effect: write
      questions:
      - How do I pass along the verification code a carrier texted the consumer?
      - What happens when a pull is waiting on identity verification?
      instructions:
      - text: Submit MFA code {code} for pull {pull} with JWT {jwt}.
        slots:
          code: requestBody.mfaValue
          pull: path.pullId
          jwt: header.pull-jwt
      - text: Send verification code {code} to finish logging in pull {pull}.
        slots:
          code: requestBody.mfaValue
          pull: path.pullId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/{pullId}/idvoptions'].post
  update:
    x-apievangelist-phrasing:
      intent: Choose how to receive an MFA code
      effect: write
      questions:
      - Can the consumer pick whether the carrier sends the code by text or email?
      - What do I send when a pull asks for identity verification options?
      instructions:
      - text: Select MFA option {option} for pull {pull} with JWT {jwt}.
        slots:
          option: requestBody.optionKey
          pull: path.pullId
          jwt: header.pull-jwt
      - text: Choose delivery method {option} for the verification code on pull {pull}.
        slots:
          option: requestBody.optionKey
          pull: path.pullId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/reconnectToken'].post
  update:
    x-apievangelist-phrasing:
      intent: Reconnect a monitored pull with a token
      effect: write
      questions:
      - How does a consumer resume a monitored connection that needs their input?
      - What do I do with a reconnect token in my own flow?
      instructions:
      - text: Reconnect the monitored pull using token {token}.
        slots:
          token: requestBody.reconnect_token
      - text: Redeem reconnect token {token} so the user can fix their connection.
        slots:
          token: requestBody.reconnect_token
      method: generated
      generated: '2026-10-01'
- target: $.paths['/widget/pull/{pullId}/servicingAction'].post
  update:
    x-apievangelist-phrasing:
      intent: Confirm or reject a servicing action
      effect: write
      questions:
      - How does a consumer approve a requested change on their policy?
      - Can the user decline a servicing action instead of confirming it?
      instructions:
      - text: Confirm servicing action {action} on pull {pull} with JWT {jwt}.
        slots:
          action: requestBody.servicing_action_id
          pull: path.pullId
          jwt: header.pull-jwt
      - text: Set servicing action {action} on pull {pull} to confirmed {confirmed}.
        slots:
          action: requestBody.servicing_action_id
          pull: path.pullId
          confirmed: requestBody.is_confirmed
      method: generated
      generated: '2026-10-01'