At-Bay Quotes API

Create, poll, and bind insurance quotes.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/at-bay-quotes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

at-bay-quotes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: At-Bay Partner Documents Quotes API
  version: '2.0'
  description: REST API for At-Bay's quote-to-bind-to-renew workflow across Surplus Cyber (CYB), Surplus Tech E&O (TEO), and Surplus Miscellaneous Professional Liability (MPL). Authenticated with a JWT bearer token. Quote creation is asynchronous — POST /quotes returns a quote_identifier that is polled via GET /quotes/{quote_identifier} every ~10 seconds until the status leaves `quote_pending`. Production submissions are subject to At-Bay's Broker-of-Record (BOR) clearance process; the demo host bypasses BOR.
  contact:
    name: At-Bay Partnerships
    email: partnerships@at-bay.com
    url: https://developers.at-bay.com
  termsOfService: https://www.at-bay.com/legal/
servers:
- url: https://api.at-bay.com/v2
  description: Production
- url: https://api-demo.at-bay.com/v2
  description: Demo
security:
- bearerAuth: []
tags:
- name: Quotes
  description: Create, poll, and bind insurance quotes.
paths:
  /quotes:
    post:
      tags:
      - Quotes
      summary: Create A Quote
      description: Submit a new quote request for one of the supported insurance products (CYB, TEO, or MPL). Returns a quote_identifier and company_id; poll GET /quotes/{quote_identifier} every 10 seconds until status changes.
      operationId: createQuote
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuoteRequest'
      responses:
        '202':
          description: Quote request accepted and queued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteAck'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          description: Submission blocked by Broker-of-Record clearance.
  /quotes/{quote_identifier}:
    get:
      tags:
      - Quotes
      summary: Find A Quote
      description: Retrieve current status and details for a quote.
      operationId: getQuote
      parameters:
      - name: quote_identifier
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Quote details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Quote'
        '404':
          $ref: '#/components/responses/NotFound'
  /quotes/{quote_identifier}/bind:
    post:
      tags:
      - Quotes
      summary: Bind A Quote
      description: Request binding of an open quote into an active policy.
      operationId: bindQuote
      parameters:
      - name: quote_identifier
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BindRequest'
      responses:
        '202':
          description: Bind request accepted; poll the quote for `policy_active`.
        '409':
          description: Quote not in a bindable status.
components:
  schemas:
    BindRequest:
      type: object
      properties:
        effective_date:
          type: string
          format: date
        accepted_terms:
          type: boolean
    Client:
      type: object
      properties:
        name:
          type: string
        domain:
          type: string
        revenue:
          type: number
        industry_code:
          type: string
        address:
          $ref: '#/components/schemas/Address'
    Quote:
      type: object
      properties:
        quote_identifier:
          type: string
        company_id:
          type: string
        status:
          type: string
          enum:
          - quote_pending
          - quote_referred
          - quote_open
          - quote_bind_requested
          - quote_declined
          - quote_expired
          - quote_revoked
          - quote_not_bound
          - policy_active
          - policy_cancelled
          - policy_expired
        insurance_product:
          type: string
          enum:
          - CYB
          - TEO
          - MPL
        premium:
          type: number
        coverage_limit:
          type: integer
        retention:
          type: integer
        effective_date:
          type: string
          format: date
        expiration_date:
          type: string
          format: date
    QuoteAck:
      type: object
      properties:
        quote_identifier:
          type: string
        company_id:
          type: string
        status:
          type: string
          example: quote_pending
    QuoteRequest:
      type: object
      required:
      - client
      - policy
      properties:
        client:
          $ref: '#/components/schemas/Client'
        policy:
          $ref: '#/components/schemas/PolicyDetails'
        broker:
          $ref: '#/components/schemas/Broker'
    Broker:
      type: object
      properties:
        broker_id:
          type: string
        agency_id:
          type: string
    PolicyDetails:
      type: object
      required:
      - insurance_product
      properties:
        insurance_product:
          type: string
          enum:
          - CYB
          - TEO
          - MPL
          description: CYB = Surplus Cyber, TEO = Surplus Tech E&O, MPL = Surplus MPL.
        effective_date:
          type: string
          format: date
        coverage_limit:
          type: integer
        retention:
          type: integer
    Address:
      type: object
      properties:
        line1:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
    BadRequest:
      description: Request payload validation failed.
    NotFound:
      description: Resource not found.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT