At-Bay Quotes API

Create, poll, and bind insurance quotes.

Operations 3

POST /quotes Create A Quote #
GET /quotes/{quote_identifier} Find A Quote #
POST /quotes/{quote_identifier}/bind Bind A Quote #

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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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.2.0
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:
    Broker:
      type: object
      properties:
        broker_id:
          type: string
        agency_id:
          type: string
    QuoteAck:
      type: object
      properties:
        quote_identifier:
          type: string
        company_id:
          type: string
        status:
          type: string
          example: quote_pending
    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
    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
    QuoteRequest:
      type: object
      required:
      - client
      - policy
      properties:
        client:
          $ref: '#/components/schemas/Client'
        policy:
          $ref: '#/components/schemas/PolicyDetails'
        broker:
          $ref: '#/components/schemas/Broker'
    BindRequest:
      type: object
      properties:
        effective_date:
          type: string
          format: date
        accepted_terms:
          type: boolean
  responses:
    NotFound:
      description: Resource not found.
    BadRequest:
      description: Request payload validation failed.
    Unauthorized:
      description: Missing or invalid bearer token.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT