Flyreel Webhook API

{'$ref': './descriptions/callback-url.md'}

Operations 2

POST /callbackUrl V2 Webhook Callback #
POST /v3/callbackUrl V3 Webhook Callback #

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/flyreel:flyreel-webhook-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

flyreel-webhook-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Flyreel Webhook API
  version: 2.0.0
  contact:
    name: API Support
    email: api@flyreel.co
    url: https://flyreel.co
  termsOfService: https://static.flyreel.co/policies/eula/index.html
  x-logo:
    url: ./img/flyreel-logo.svg
    altText: Flyreel Logo
  description: 'Operations tagged Webhook across 2 of this provider''s published API definitions: flyreel_api.yaml, flyreel-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://connect.flyreel.co/v2
  description: Production environment
- url: https://sandbox.connect.flyreel.co/v2
  description: Sandbox environment
security:
- apiKey: []
tags:
- name: Webhook
  x-displayName: Receiving Updates with Webhooks
  description:
    $ref: ./descriptions/callback-url.md
paths:
  /callbackUrl:
    post:
      summary: V2 Webhook Callback
      description: Webhook callback endpoint that receives V2 data format for inspection updates.
      tags:
      - Webhook
      security: []
      parameters:
      - in: header
        name: x-flyreel-signature
        schema:
          type: string
        required: true
      requestBody:
        $ref: '#/components/requestBodies/InspectionUpdatedPayload'
      responses:
        200:
          description: Success
      operationId: postCallbackUrl
      x-operation-id-source: derived
    servers:
    - url: https://connect.flyreel.co/v2
      description: Production environment
    - url: https://sandbox.connect.flyreel.co/v2
      description: Sandbox environment
  /v3/callbackUrl:
    post:
      summary: V3 Webhook Callback
      description: Webhook callback endpoint that receives V3 data format for inspection updates.
      tags:
      - Webhook
      security: []
      parameters:
      - in: header
        name: x-flyreel-signature
        schema:
          type: string
        required: true
      requestBody:
        $ref: '#/components/requestBodies/V3FlyreelUpdatedPayload'
      responses:
        200:
          description: Success
      operationId: postV3CallbackUrl
      x-operation-id-source: derived
    servers:
    - url: https://connect.flyreel.co/v2
      description: Production environment
    - url: https://sandbox.connect.flyreel.co/v2
      description: Sandbox environment
components:
  requestBodies:
    InspectionUpdatedPayload:
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              id:
                type: string
                example: 5d0a3cb00cd81f001119fc11
                description: Flyreel ID
              external_id:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
                description: Empty string if meta.external_id does not exist
              changes:
                type: object
                description: Contains only the fields that were updated
                required:
                - updatedAt
                properties:
                  suppress_notifications:
                    type: boolean
                    example: false
                  first_name:
                    type: string
                    example: Joe
                  last_name:
                    type: string
                    example: Smith
                  email:
                    type: string
                    format: email
                    example: joe.smith@test.com
                  phone:
                    type: string
                    example: '+15432223333'
                  business:
                    $ref: '#/components/schemas/UpdateFlyreelBusinessInfoRequestDto'
                  policy_id:
                    type: string
                    example: '1234'
                    description: Required for underwriting flyreels
                  claim_number:
                    type: string
                    example: '1234'
                    description: Required for claims flyreels
                  policy_type:
                    type: string
                    example: new
                  agent_name:
                    type: string
                    example: Tim Green
                  agent_email:
                    type: string
                    format: email
                    example: tim.green@test.com
                  agent_phone:
                    type: string
                    example: '+15432224444'
                  expiration:
                    type: string
                    format: date-time
                    example: '2020-12-06T04:59:59.999Z'
                  carrier_expiration:
                    type: string
                    format: date-time
                    example: '2020-12-09T04:59:59.999Z'
                  address1:
                    type: string
                    example: 3000 Lawrence St
                  address2:
                    type: string
                    example: Apt. 1
                  city:
                    type: string
                    example: Denver
                  state:
                    type: string
                    example: CO
                    minLength: 2
                    maxLength: 2
                    description: State/province code
                  zip_code:
                    type: string
                    example: '80205'
                  country:
                    type: string
                    example: US
                    enum:
                    - US
                    - CA
                    description: Country
                  custom_fields:
                    $ref: '#/components/schemas/WebhookCustomFields'
                  status:
                    type: string
                    example: invited
                    enum:
                    - pending
                    - ready_for_invite
                    - invited
                    - started
                    - submitted
                    - ready_for_review
                    - in_review
                    - pending_completion
                    - completed
                    - abandoned
                    - extension_pending
                    - expired
                    - cancelled
                  meta:
                    type: object
                    properties:
                      external_id:
                        type: string
                        example: 5fcfe28db910d6000e6f14d2
                      inspection_form_id:
                        type: string
                      forms:
                        $ref: '#/components/schemas/V2InspectionMetaForms'
                  updatedAt:
                    type: string
                    format: date-time
                    example: '2019-10-31T02:49:14.559Z'
              changedAt:
                type: string
                format: date-time
                example: '2020-12-09T04:59:59.999Z'
              current:
                type: object
                properties:
                  _id:
                    type: string
                    example: 5ced45a977e37d001180f25a
                  carrier:
                    type: string
                    example: 5d3633f9103a930011996475
                  location:
                    $ref: '#/components/schemas/Location'
                  ordered_location:
                    $ref: '#/components/schemas/Location'
                  custom_fields:
                    $ref: '#/components/schemas/WebhookCustomFields'
                  suppress_notifications:
                    type: boolean
                    example: false
                  invalid_email:
                    type: boolean
                    example: false
                  policy_id:
                    type: string
                    example: '1234'
                    description: Required for underwriting flyreels
                  policy_type:
                    type: string
                    example: new
                  claim_number:
                    type: string
                    example: '1234'
                    description: Required for claims flyreels
                  first_name:
                    type: string
                    example: Joe
                  last_name:
                    type: string
                    example: Smith
                  email:
                    type: string
                    format: email
                    example: joe.smith@test.com
                  phone:
                    type: string
                    example: '+15432223333'
                  business:
                    $ref: '#/components/schemas/Business'
                  agent_name:
                    type: string
                    example: Tim Green
                  agent_email:
                    type: string
                    format: email
                    example: tim.green@test.com
                  agent_phone:
                    type: string
                    example: '+15432224444'
                  code:
                    type: string
                    example: ABC-123-XYZ
                  expiration:
                    type: string
                    format: date-time
                    example: '2020-12-06T04:59:59.999Z'
                  carrier_expiration:
                    type: string
                    format: date-time
                    example: '2020-12-09T04:59:59.999Z'
                  address1:
                    type: string
                    example: 3000 Lawrence St
                  address2:
                    type: string
                    example: Apt. 1
                  city:
                    type: string
                    example: Denver
                  state:
                    type: string
                    example: CO
                    minLength: 2
                    maxLength: 2
                    description: State/province code
                  zip_code:
                    type: string
                    example: '80205'
                  country:
                    type: string
                    example: US
                    enum:
                    - US
                    - CA
                    description: Country
                  timezone:
                    $ref: '#/components/schemas/TimeZone'
                  status:
                    type: string
                    example: invited
                    enum:
                    - pending
                    - ready_for_invite
                    - invited
                    - started
                    - submitted
                    - ready_for_review
                    - in_review
                    - pending_completion
                    - completed
                    - abandoned
                    - extension_pending
                    - expired
                    - cancelled
                  contact_log:
                    $ref: '#/components/schemas/WebhookContactLog'
                  createdAt:
                    type: string
                    format: date-time
                    example: '2019-10-31T02:49:14.559Z'
                  updatedAt:
                    type: string
                    format: date-time
                    example: '2019-10-31T02:49:14.559Z'
                  detected_address:
                    type: string
                    example: 3000 Lawrence St, Denver, CO 80205
                  conversation:
                    type: object
                    properties:
                      _id:
                        type: string
                        example: 5ced45a977e37d001180f25a
                      name:
                        type: string
                        example: Residential (2019-08-07 12:23)
                    required:
                    - _id
                    - name
                  meta:
                    type: object
                    properties:
                      external_id:
                        type: string
                        example: 5fcfe28db910d6000e6f14d2
                      inspection_form_id:
                        type: string
                      forms:
                        $ref: '#/components/schemas/V2InspectionMetaForms'
                required:
                - _id
                - carrier
                - ordered_location
                - suppress_notifications
                - invalid_email
                - first_name
                - last_name
                - code
                - expiration
                - carrier_expiration
                - address1
                - city
                - state
                - zip_code
                - country
                - timezone
                - status
                - contact_log
                - createdAt
                - updatedAt
                - detected_address
                - conversation
                - meta
            required:
            - id
            - changes
            - changedAt
            - current
    V3FlyreelUpdatedPayload:
      required: true
      content:
        application/json:
          schema:
            type: object
            description: Webhook payload sent to the V3 callback URL when an inspection is updated.
            properties:
              id:
                type: string
                example: 5d0a3cb00cd81f001119fc11
                description: Flyreel ID
              external_id:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
                description: External ID for the inspection; empty string if it is not set
              changes:
                type: object
                properties: {}
                additionalProperties: true
                description: 'The fields that changed on the inspection. Keys use dot notation for

                  nested paths (e.g. "status", "customer.email", "property.city").

                  '
                example:
                  status: submitted
                  updatedAt: '2020-12-09T04:59:59.999Z'
              changedAt:
                type: string
                format: date-time
                example: '2020-12-09T04:59:59.999Z'
                description: When the change occurred
              current:
                type: object
                description: The current state of the inspection after the change.
                properties:
                  _id:
                    type: string
                  bot:
                    type: object
                    properties:
                      _id:
                        type: string
                      name:
                        type: string
                      version:
                        type: number
                      engine:
                        type: number
                        enum:
                        - 3
                        - 4
                      type:
                        type: string
                        enum:
                        - claims
                        - underwriting
                      propertyType:
                        type: string
                        enum:
                        - apartment
                        - condo
                        - farm & ranch
                        - habitation
                        - home
                        - restaurant
                        - retail
                      useCase:
                        type: string
                        enum:
                        - commercial
                        - residential
                      inspectionType:
                        type: string
                        enum:
                        - initial
                        - follow-up
                    required:
                    - _id
                    - name
                    - version
                    - engine
                  organizationId:
                    type: string
                  accessCode:
                    type: string
                  status:
                    type: string
                    enum:
                    - pending
                    - ready_for_invite
                    - invited
                    - started
                    - submitted
                    - ready_for_review
                    - in_review
                    - secondary_review
                    - pending_completion
                    - completed
                    - abandoned
                    - extension_pending
                    - expired
                    - cancelled
                  customFields:
                    type: object
                    properties: {}
                    additionalProperties:
                      type: string
                    description: Carrier defined custom fields as key-value pairs
                  expiration:
                    type: string
                    format: date-time
                  organizationExpiration:
                    type: string
                    format: date-time
                  sha1:
                    type: string
                  property:
                    type: object
                    properties:
                      streetAddress1:
                        type: string
                      streetAddress2:
                        type: string
                      city:
                        type: string
                      state:
                        type: string
                      zipCode:
                        type: string
                      country:
                        type: string
                      location:
                        type: object
                        properties:
                          type:
                            type: string
                          coordinates:
                            type: array
                            minItems: 2
                            maxItems: 2
                            description: '[lng, lat]'
                            example:
                            - -115.23
                            - 45.98
                            items:
                              type: number
                        required:
                        - type
                        - coordinates
                      timezone:
                        type: object
                        properties:
                          dstOffset:
                            type: number
                          rawOffset:
                            type: number
                          timezoneId:
                            type: string
                          timezoneName:
                            type: string
                        required:
                        - dstOffset
                        - rawOffset
                        - timezoneId
                        - timezoneName
                      placeId:
                        type: string
                      formattedAddress:
                        type: string
                    required:
                    - streetAddress1
                    - city
                    - state
                    - zipCode
                    - country
                  customer:
                    type: object
                    properties:
                      firstName:
                        type: string
                      lastName:
                        type: string
                      email:
                        type: string
                      invalidEmail:
                        type: boolean
                      suppressNotifications:
                        type: boolean
                      phone:
                        type: string
                    required:
                    - firstName
                    - lastName
                    - invalidEmail
                    - suppressNotifications
                  business:
                    description: Business information. Required for commercial bots and not allowed for residential bots
                    allOf:
                    - $ref: '#/components/schemas/BusinessInfo'
                  archived:
                    type: boolean
                  startedAt:
                    type: string
                    format: date-time
                  submittedAt:
                    type: string
                    format: date-time
                  reviewStartedAt:
                    type: string
                    format: date-time
                  reviewCompletedAt:
                    type: string
                    format: date-time
                  reviewer:
                    type: object
                    properties:
                      _id:
                        type: string
                      firstName:
                        type: string
                      lastName:
                        type: string
                    required:
                    - _id
                  billing:
                    type: object
                    properties:
                      billable:
                        type: boolean
                      billingPeriod:
                        type: string
                      invoiced:
                        type: boolean
                    required:
                    - billable
                    - billingPeriod
                    - invoiced
                  userProvidedAddress:
                    type: string
                  location:
                    $ref: '#/components/schemas/V2Location'
                  insightsCount:
                    type: number
                  pendingAsyncCvRequests:
                    type: array
                    items:
                      type: string
                  initiatedAsyncCvRequest:
                    type: boolean
                  deleted:
                    type: boolean
                  deepLinkLogin:
                    type: string
                  launchBridgeAliasToken:
                    type: string
                  integrations:
                    type: object
                    properties:
                      estated:
                        type: object
                        properties:
                          structure:
                            type: object
                            properties:
                              year_built:
                                type: number
                  extensionGranted:
                    type: boolean
                  invitedAgent:
                    type: object
                    properties:
                      _id:
                        type: string
                      email:
                        type: string
                      firstName:
                        type: string
                      lastName:
                        type: string
                    required:
                    - _id
                    - email
                    - firstName
                    - lastName
                  followUpConfig:
                    type: object
                    properties:
                      initialFlyreelId:
                        type: string
                      recommendationLetterId:
                        type: string
                    required:
                    - initialFlyreelId
                    - recommendationLetterId
                  manualFlyreel:
                    type: boolean
                    default: false
                    description: Indicates if the inspection was created without a customer email
                  updatedBy:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  emailSharingOptOut:
                    type: boolean
                    description: Used for Manual inspections when the user opts out of email sharing
                  activation:
                    type: object
                    properties:
                      activatedAt:
                        type: string
                        format: date-time
                      activationCode:
                        type: string
                      activationToken:
                        type: string
                      activationTokenExpiresAt:
                        type: string
                        format: date-time
                      url:
                        type: string
                      qrCode:
                        type: string
                required:
                - _id
                - bot
                - organizationId
                - accessCode
                - status
                - expiration
                - organizationExpiration
                - sha1
                - property
                - customer
                - archived
                - insightsCount
                - pendingAsyncCvRequests
                - initiatedAsyncCvRequest
                - deleted
                - extensionGranted
                - updatedBy
                - createdAt
                - updatedAt
            required:
            - id
            - changes
            - changedAt
            - current
  schemas:
    Location:
      type: object
      properties:
        type:
          type: string
        coordinates:
          type: array
          maxItems: 2
          minItems: 2
          description: '[lng, lat]'
          example:
          - -115.23
          - 45.98
          items:
            type: number
      required:
      - type
      - coordinates
    BusinessInfo:
      type: object
      properties:
        name:
          type: string
          example: Fake Company
          description: Customer business name
        email:
          type: string
          example: business@test.com
          description: Customer business email
        phone:
          type: string
          example: '+15432222222'
          description: Customer business phone number - must be a valid phone number
      required:
      - name
      - email
    UpdateFlyreelBusinessInfoRequestDto:
      type: object
      description: Customer business information for commercial inspections. Not allowed for residential inspections
      properties:
        name:
          type: string
          example: Fake Company
          description: Customer business name
        email:
          type: string
          example: business@test.com
          description: Customer business email
        phone:
          type: string
          example: '+15432222222'
          description: Customer business phone number - must be a valid phone number
    V2InspectionMetaForms:
      type: object
      properties:
        self_inspection_form_id:
          type: string
        self_inspection_internal_form:
          type: string
    Business:
      type: object
      description: Customer business information for commercial inspections. Not allowed for non-commercial inspections
      properties:
        name:
          type: string
          example: Fake Company
          description: Customer business name
        email:
          type: string
          example: business@test.com
          description: Customer business email
        phone:
          type: string
          example: '+15432222222'
          description: Customer business phone number - must be a valid phone number
      required:
      - name
      - email
    WebhookCustomFields:
      type: object
      properties: {}
      additionalProperties: true
      description: 'Carrier defined custom fields as key-value pairs sent in webhook payloads.


        Note: The following reserved field names are automatically excluded from custom_fields

        and moved to dedicated locations in the webhook payload:


        Top-level properties: claim_number, policy_id, policy_type, flyreel_type, status,

        agent_name, agent_email, agent_phone


        Meta object: external_id, inspection_form_id, self_inspection_form_id,

        self_inspection_internal_form

        '
    V2Location:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          enum:
          - Point
          - null
        coordinates:
          type:
          - array
          - 'null'
          minItems: 2
          maxItems: 2
          description: '[lng, lat]'
          example:
          - -115.23
          - 45.98
          items:
            type: number
      required:
      - type
      - coordinates
    WebhookContactLog:
      type: array
      items:
        type: object
        properties:
          _id:
            type: string
            example: 5ced45a977e37d001180f25a
          invite:
            type: string
            description: Message template ID
          type:
            type: string
            example: email
          sent:
            type: string
            format: date-time
            example: '2019-10-25T01:54:09.538Z'
          meta:
            type: object
            properties:
              provider:
                type: string
                enum:
                - postmark
                - twilio
                - onesignal
                description: Messaging service provider
              external_message_id:
                type: string
                description: External message ID from the provider
              event_time:
                type: string
                format: date-time
                example: '2019-10-31T02:49:14.559Z'
                description: Time of the last event or sent time
              status:
                oneOf:
                - type: object
                  description: Postmark provider status with boolean flags
                  properties:
                    Delivered:
                      type: boolean
                    Bounced:
                      type: boolean
                    SpamReport:
                      type: boolean
                    Opened:
                      type: boolean
                    Clicked:
                      type: boolean
                    SubscriptionChange:
                      type: boolean
                    Inactive:
                      type: boolean
                - type: string
                  description: Event name for non-Postmark providers
            required:
            - provider
            - external_message_id
            - event_time
        required:
        - _id
        - invite
        - type
        - sent
        - meta
    TimeZone:
      type: object
      properties:
        dst_offset:
          type: integer
          example: 4
          description: Daylight saving time offset
        raw_offset:
          type: integer
          example: -25200
          description: Raw offset
        timezone_id:
          type: string
          example: America/Denver
        timezone_name:
          type: string
          example: Mountain Standard Time
      required:
      - dst_offset
      - raw_offset
      - timezone_id
      - timezone_name
  securitySchemes:
    apiKey:
      description: 'All requests to the API should add a header to each request to include a secret and access key as shown below:


        ```

        access-key: [your access key]

        secret-key: [your secret key]

        ```


        If you do not already have an API token, you can request one by emailing your customer success manager.

        '
      type: apiKey
      name: access-key, secret-key
      in: header
x-refined-from:
- flyreel_api.yaml
- flyreel-openapi.yml
x-tagGroups:
- name: API Reference
  tags:
  - Inspection
  - Conversation
  - Webhook