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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/1fort:1fort-business-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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
openapi: 3.2.0
info:
title: 1Fort API Documentation Business API
description: '# 1Fort API
REST API for the 1Fort insurance platform.'
termsOfService: https://www.1fort.com/
license:
name: Privately owned
version: v1
servers:
- url: https://api.1fort.com/apis/
security:
- Bearer: []
tags:
- name: Business
x-displayName: Business
description: '**Access:** requires a JWT access token.'
paths:
/business:
parameters: []
get:
operationId: business_list
summary: Get business details
description: 'Retrieve business details.
To Update:
A subsidiaries list can be passed to update
the business with subsidiaries.
Example:
"subsidiaries": [
{
"name": "Subsidiary 1",
}
]'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Business'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- Business
/business/my-agents:
parameters: []
get:
operationId: business_business_agents
description: ''
responses:
'200':
description: ''
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- Business
summary: Business agents
/business/my-broker:
parameters: []
get:
operationId: business_business_broker
description: ''
responses:
'200':
description: ''
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- Business
summary: Business broker
/business/notify-broker:
parameters: []
get:
operationId: business_notify_business_broker
description: ''
responses:
'200':
description: ''
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- Business
summary: Notify business broker
components:
schemas:
BusinessSubsidiary:
required:
- name
- business
type: object
properties:
id:
title: ID
type: integer
readOnly: true
name:
title: Name
type: string
maxLength: 255
minLength: 1
description:
title: Description
type:
- string
- 'null'
ownership:
title: Ownership
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
business:
title: Business
type: integer
GenericError:
title: Generic API Error
required:
- detail
type: object
properties:
detail:
description: Error details
type: string
Business:
required:
- has_notified_clients_of_breach
- has_been_hacked
- has_been_investigated_for_alleged_privacy_violations
- has_subsidiaries
- have_cyber_claim
- is_franchise
- potential_claim
- received_complaints
- store_pii
- name
type: object
properties:
id:
title: ID
type: integer
readOnly: true
subsidiaries:
type: array
items:
$ref: '#/components/schemas/BusinessSubsidiary'
readOnly: true
has_notified_clients_of_breach:
title: Has notified clients of breach
type:
- boolean
- 'null'
has_been_hacked:
title: Has been hacked
type:
- boolean
- 'null'
has_been_investigated_for_alleged_privacy_violations:
title: Has been investigated for alleged privacy violations
type:
- boolean
- 'null'
has_subsidiaries:
title: Has subsidiaries
type:
- boolean
- 'null'
have_cyber_claim:
title: Have cyber claim
type:
- boolean
- 'null'
is_franchise:
title: Is franchise
type:
- boolean
- 'null'
potential_claim:
title: Potential claim
type:
- boolean
- 'null'
received_complaints:
title: Received complaints
type:
- boolean
- 'null'
store_pii:
title: Store pii
type:
- boolean
- 'null'
broker_team:
title: Broker team
type: string
readOnly: true
industry_classification:
title: Industry classification
type: string
format: uuid
applicant_name:
title: Applicant name
type:
- string
- 'null'
maxLength: 255
applicant_email:
title: Applicant email
type:
- string
- 'null'
format: email
maxLength: 254
applicant_phone:
title: Applicant phone
type:
- string
- 'null'
maxLength: 255
legal_entity:
title: Legal entity
type:
- string
- 'null'
maxLength: 255
address_line_1:
title: Address line 1
type:
- string
- 'null'
maxLength: 255
address_line_2:
title: Address line 2
type:
- string
- 'null'
maxLength: 255
city:
title: City
type:
- string
- 'null'
maxLength: 255
state_code:
title: State code
type:
- string
- 'null'
maxLength: 2
country_code:
title: Country code
type:
- string
- 'null'
maxLength: 5
zip_code:
title: Zip code
type:
- string
- 'null'
maxLength: 10
name:
title: Name
type: string
maxLength: 255
minLength: 1
domain_name:
title: Domain name
type:
- string
- 'null'
maxLength: 500
has_no_domain_name:
title: Has no domain name
type: boolean
industry:
title: Industry
type:
- string
- 'null'
maxLength: 255
number_of_employees:
title: Number of employees
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
active:
title: Active
type: boolean
description:
title: Description
type:
- string
- 'null'
revenue:
title: Revenue
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
state_of_incorporation:
title: State of incorporation
type:
- string
- 'null'
maxLength: 2
country_of_incorporation:
title: Country of incorporation
type:
- string
- 'null'
maxLength: 2
year_founded:
title: Year founded
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
naics_code:
title: Naics code
type:
- string
- 'null'
maxLength: 255
ein:
title: Ein
type:
- string
- 'null'
maxLength: 255
premium_plan:
title: Premium plan
type:
- boolean
- 'null'
has_notified_clients_of_breach_description:
title: Has notified clients of breach description
type:
- string
- 'null'
has_been_investigated_for_privacy_violations:
title: Has been investigated for privacy violations
type:
- boolean
- 'null'
has_been_investigated_for_privacy_violations_description:
title: Has been investigated for privacy violations description
type:
- string
- 'null'
has_been_hacked_description:
title: Has been hacked description
type:
- string
- 'null'
active_carriers:
type:
- array
- 'null'
items:
title: Active carriers
type: string
maxLength: 255
minLength: 1
ownership_type:
title: Ownership type
type:
- string
- 'null'
enum:
- PUBLIC
- PRIVATE
- NONPROFIT
- PUBLIC_SECTOR
- PARTNERSHIP
- NON_CORPORATES
phone_number:
title: Phone number
type:
- string
- 'null'
maxLength: 255
security_contact_title:
title: Security contact title
type:
- string
- 'null'
maxLength: 255
security_email:
title: Security email
type:
- string
- 'null'
format: email
maxLength: 254
security_phone_number:
title: Security phone number
type:
- string
- 'null'
maxLength: 255
name_of_security_contact:
title: Name of security contact
type:
- string
- 'null'
maxLength: 255
security_designation:
title: Security designation
type:
- string
- 'null'
number_of_it_personnel:
title: Number of it personnel
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
number_of_dedicated_security_personnel:
title: Number of dedicated security personnel
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
help_center_url:
title: Help center url
type:
- string
- 'null'
format: uri
maxLength: 200
carrier_page_url:
title: Carrier page url
type:
- string
- 'null'
format: uri
maxLength: 200
company_updates_url:
title: Company updates url
type:
- string
- 'null'
format: uri
maxLength: 200
terms_of_service_url:
title: Terms of service url
type:
- string
- 'null'
format: uri
maxLength: 200
privacy_policy_url:
title: Privacy policy url
type:
- string
- 'null'
format: uri
maxLength: 200
security_commitments_url:
title: Security commitments url
type:
- string
- 'null'
format: uri
maxLength: 200
income_coverage_limit:
title: Income coverage limit
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
deductible:
title: Deductible
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
retention:
title: Retention
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
no_of_subsidiary:
title: No of subsidiary
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
net_revenue:
title: Net revenue
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
gross_profit:
title: Gross profit
type:
- integer
- 'null'
maximum: 2147483647
minimum: -2147483648
last_year_revenue:
title: Last year revenue
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
last_two_year_revenue:
title: Last two year revenue
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
cyber_claim_lost:
title: Cyber claim lost
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
cyber_claim_description:
title: Cyber claim description
type:
- string
- 'null'
potential_claim_description:
title: Potential claim description
type:
- string
- 'null'
received_complaint:
title: Received complaint
type:
- boolean
- 'null'
received_complaint_description:
title: Received complaint description
type:
- string
- 'null'
archived_at:
title: Archived at
type:
- string
- 'null'
format: date-time
broker_sharing_setting:
title: Broker sharing setting
type:
- string
- 'null'
maxLength: 255
carrier_sharing_setting:
title: Carrier sharing setting
type:
- string
- 'null'
maxLength: 255
social_security_numbers:
title: Social security numbers
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
consumer_financial_information:
title: Consumer financial information
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
payment_card_information:
title: Payment card information
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
protected_health_information:
title: Protected health information
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
biometric_information:
title: Biometric information
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
social_security_numbers_on_paper_records:
title: Social security numbers on paper records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
consumer_financial_information_on_paper_records:
title: Consumer financial information on paper records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
payment_card_information_on_paper_records:
title: Payment card information on paper records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
protected_health_information_on_paper_records:
title: Protected health information on paper records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
biometric_information_on_paper_records:
title: Biometric information on paper records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
social_security_numbers_electronic_records:
title: Social security numbers electronic records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
consumer_financial_information_electronic_records:
title: Consumer financial information electronic records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
payment_card_information_electronic_records:
title: Payment card information electronic records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
protected_health_information_electronic_records:
title: Protected health information electronic records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
biometric_information_electronic_records:
title: Biometric information electronic records
type:
- string
- 'null'
enum:
- '0'
- <100K
- 100K-500K
- 500k - 1M
- 1M - 2M
- 2M - 5M
- 5M - 10M
- '>10M'
is_pci_dss_compliant:
title: Is pci dss compliant
type:
- boolean
- 'null'
has_reviewed_sensitive_data_policy:
title: Has reviewed sensitive data policy
type:
- boolean
- 'null'
has_received_cyber_extortion_threat:
title: Has received cyber extortion threat
type:
- boolean
- 'null'
has_experienced_cyber_attack_network_outage_wire_transfer_fraud:
title: Has experienced cyber attack network outage wire transfer fraud
type:
- boolean
- 'null'
has_unscheduled_network_outage:
title: Has unscheduled network outage
type:
- boolean
- 'null'
unscheduled_network_outage_description:
title: Unscheduled network outage description
type:
- string
- 'null'
has_experienced_wire_transfer_fraud:
title: Has experienced wire transfer fraud
type:
- boolean
- 'null'
wire_transfer_fraud_description:
title: Wire transfer fraud description
type:
- string
- 'null'
has_experienced_cyber_attack:
title: Has experienced cyber attack
type:
- boolean
- 'null'
cyber_attack_description:
title: Cyber attack description
type:
- string
- 'null'
service_provider_outage_past_3_years:
title: Service provider outage past 3 years
type:
- boolean
- 'null'
business_interruption_due_to_outage:
title: Business interruption due to outage
type:
- boolean
- 'null'
it_budget:
title: It budget
type:
- integer
- 'null'
maximum: 9223372036854775807
minimum: -9223372036854775808
network_security_management:
title: Network security management
type:
- string
- 'null'
enum:
- OUTSOURCED
- IN_HOUSE
security_provider_name:
title: Security provider name
type:
- string
- 'null'
maxLength: 255
security_contact_person_name:
title: Security contact person name
type:
- string
- 'null'
maxLength: 255
security_contact_person_email:
title: Security contact person email
type:
- string
- 'null'
format: email
maxLength: 254
has_revenue_outside_domicile:
title: Has revenue outside domicile
type:
- boolean
- 'null'
revenue_outside_domicile_percentage:
title: Revenue outside domicile percentage
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
has_recent_merger_acquisition:
title: Has recent merger acquisition
type:
- boolean
- 'null'
merger_acquisition_details:
title: Merger acquisition details
type:
- string
- 'null'
process_stores_or_handles_credit_card_transactions:
title: Process stores or handles credit card transactions
type:
- boolean
- 'null'
business_email:
title: Business email
description: Auto-generated unique email @1fort.com
type:
- string
- 'null'
format: email
maxLength: 254
business_password:
title: Business password
description: Auto-generated secure password
type:
- string
- 'null'
maxLength: 255
created_at:
title: Created at
type: string
format: date-time
readOnly: true
updated_at:
title: Updated at
type: string
format: date-time
readOnly: true
deleted_at:
title: Deleted at
type:
- string
- 'null'
format: date-time
smtp_tls_status:
title: Smtp tls status
type: string
enum:
- active
- inactive
- unknown
cyber_risk_areas_for_improvement:
title: Cyber risk areas for improvement
type:
- string
- 'null'
cyber_risk_areas_of_strength:
title: Cyber risk areas of strength
type:
- string
- 'null'
COI_vendor_tracking:
title: COI vendor tracking
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
employee_benefits_management_software:
title: Employee benefits management software
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
governance_risk_compliance_software:
title: Governance risk compliance software
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
security_monitoring:
title: Security monitoring
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
privacy_frameworks:
title: Privacy frameworks
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
NIST_tool:
title: NIST tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
GDPR_tool:
title: GDPR tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
HIPAA_tool:
title: HIPAA tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
CMMC_tool:
title: CMMC tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
ISO_27001_tool:
title: ISO 27001 tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
CCPA_tool:
title: CCPA tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
FedRAMP_tool:
title: FedRAMP tool
type:
- string
- 'null'
enum:
- IN_PLACE
- ACTIVELY_LOOKING
- INTEND_TO_GET
- NOT_USED
industries_company_participates_in:
title: Industries company participates in
type:
- object
- 'null'
percentage_of_written_agreements_standard_vs_manuscript:
title: Percentage of written agreements standard vs manuscript
type:
- string
- 'null'
enum:
- 80/20
- 60/40
- 50/50
- 40/60
- 20/80
is_there_limitation_of_liability_clause_utilized:
title: Is there limitation of liability clause utilized
type:
- boolean
- 'null'
is_there_hold_harmless_clause_utilized:
title: Is there hold harmless clause utilized
type:
- boolean
- 'null'
is_there_indemnification_clause_utilized:
title: Is there indemnification clause utilized
type:
- boolean
- 'null'
is_there_exclusion_of_consequential_damages_clause_utilized:
title: Is there exclusion of consequential damages clause utilized
type:
- boolean
- 'null'
is_there_mandatory_or_binding_arbitration_clause_utilized:
title: Is there mandatory or binding arbitration clause utilized
type:
- boolean
- 'null'
is_there_other_clause_utilized:
title: Is there other clause utilized
type:
- boolean
- 'null'
is_there_directors_and_officers_coverage_in_place:
title: Is there directors and officers coverage in place
type:
- boolean
- 'null'
is_there_epl_coverage_in_place:
title: Is there epl coverage in place
type:
- boolean
- 'null'
is_there_fiduciary_liability_coverage_in_place:
title: Is there fiduciary liability coverage in place
type:
- boolean
- 'null'
is_there_cyber_coverage_in_place:
title: Is there cyber coverage in place
type:
- boolean
- 'null'
is_there_tech_errors_and_omissions_coverage_in_place:
title: Is there tech errors and omissions coverage in place
type:
- boolean
- 'null'
resource_owner:
title: Resource owner
type:
- integer
- 'null'
designated_ciso:
title: Designated ciso
type:
- integer
- 'null'
designated_privacy_officer:
title: Designated privacy officer
type:
- integer
- 'null'
securitySchemes:
Bearer:
type: apiKey
name: Authorization
in: header
description: JWT access token. Send as `Bearer <token>` or `JWT <token>`.
ApiKey:
type: apiKey
name: Authorization
in: header
description: API key. Send as `Api-Key <key>`.
x-tagGroups:
- name: Agent runtime (v2)
tags:
- agent_runtime (v2)
- name: Analytics
tags:
- analytics
- name: Application
tags:
- 'application: applications'
- 'application: clients'
- name: Application (v2)
tags:
- 'application (v2): applications'
- 'application (v2): coverages'
- name: Ascend
tags:
- ascend
- name: Ascend (v2)
tags:
- ascend (v2)
- name: Authentication
tags:
- Authentication
- auth
- name: Billing (v2)
tags:
- billing (v2)
- name: Broker
tags:
- broker
- broker-ams-integration
- broker-google
- broker-office365
- broker-office365-individual
- 'broker: ai-customization-types'
- 'broker: ai-customizations'
- 'broker: clients'
- 'broker: email_preferences'
- 'broker: proposal-preferences'
- 'broker: take-rates'
- 'broker: user-ai-customizations'
- 'broker: users'
- broker_groups
- broker_settings
- name: Broker (v2)
tags:
- 'broker (v2): applications'
- 'broker (v2): clients'
- 'broker (v2): coverages'
- 'broker (v2): email-templates'
- 'broker (v2): quote-policies'
- 'broker (v2): quotes'
- 'broker (v2): storefront'
- 'broker (v2): team-users'
- name: Business
tags:
- business
- business-broker-users
- business-user
- business_admin
- name: Carrier
tags:
- carrier
- name: Checkout
tags:
- checkout
- name: Email AI
tags:
- email_ai
- name: Email AI (v2)
tags:
- 'email_ai (v2): attachments'
- 'email_ai (v2): carriers'
- 'email_ai (v2): coverage-types'
- 'email_ai (v2): emails'
- 'email_ai (v2): gmail'
- 'email_ai (v2): office365'
- 'email_ai (v2): profiles'
- 'email_ai (v2): wholesalers'
- name: Email AI Agent
tags:
- Email AI Agent
- Email AI Agent - Attachments
- Email AI Agent - Businesses
- Email AI Agent - Entities
- Email AI Agent - Markets
- Email AI Agent - Profiles
- Email AI Agent - Reference Data
- name: Google workspace (v2)
tags:
- google_workspace (v2)
- name: Herald (v2)
tags:
- herald (v2)
- name: Indications (v2)
tags:
- indications (v2)
- name: Insurance (v2)
tags:
- insurance (v2)
- name: Invite
tags:
- invite
- name: Legal
tags:
- legal
- name: Market
tags:
- Markets
- Markets - Business
- name: Market (v2)
tags:
- market (v2)
- name: Office365 (v2)
tags:
- office365 (v2)
- name: Premium finance (v2)
tags:
- premium_finance (v2)
- name: Quote
tags:
- 'quote: applications'
- 'quote: clients'
- 'quote: quotes'
- name: Quote (v2)
tags:
- 'quote (v2): application'
- 'quote (v2): binders'
- 'quote (v2): checkout'
- 'quote (v2): cios'
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/1fort/openapi/1fort-business-api-openapi.yml