1Fort ascend (v2) API
**Deprecated.** Legacy Ascend billing/payments; use the Billing (v2) endpoints instead. **Access:** requires a JWT access token.
**Deprecated.** Legacy Ascend billing/payments; use the Billing (v2) endpoints instead. **Access:** requires a JWT access token.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/1fort:1fort-ascend-v2-api"
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.
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: 3.2.0
info:
title: 1Fort API Documentation ascend (v2) 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: ascend (v2)
x-displayName: Ascend (v2)
description: '**Deprecated.** Legacy Ascend billing/payments; use the Billing (v2) endpoints instead.
**Access:** requires a JWT access token.'
paths:
/v2/ascend/payments:
parameters: []
get:
operationId: v2_ascend_payments_list
summary: Return a list of payments with summary data and applied filters
description: '.. deprecated::
Prefer ``GET /apis/v2/billing/payments`` (insurance invoice backed).
This Ascend program list remains for legacy transition only.'
parameters:
- name: ordering
in: query
description: Which field to use when ordering the results.
required: false
schema:
type: string
- name: search
in: query
description: A search term.
required: false
schema:
type: string
- name: limit
in: query
description: Number of results to return per page.
required: false
schema:
type: integer
- name: offset
in: query
description: The initial index from which to return the results.
required: false
schema:
type: integer
responses:
'200':
description: ''
content:
application/json:
schema:
required:
- count
- results
type: object
properties:
count:
type: integer
next:
type:
- string
- 'null'
format: uri
previous:
type:
- string
- 'null'
format: uri
results:
type: array
items:
$ref: '#/components/schemas/Payment'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- ascend (v2)
deprecated: true
/v2/ascend/payments/csv:
parameters: []
get:
operationId: v2_ascend_payments_export_csv
description: 'Export payments to CSV format.
Returns all filtered payments without pagination (same filters as the list view).'
parameters:
- name: ordering
in: query
description: Which field to use when ordering the results.
required: false
schema:
type: string
- name: search
in: query
description: A search term.
required: false
schema:
type: string
- name: limit
in: query
description: Number of results to return per page.
required: false
schema:
type: integer
- name: offset
in: query
description: The initial index from which to return the results.
required: false
schema:
type: integer
responses:
'200':
description: ''
content:
'*/*':
schema:
required:
- count
- results
type: object
properties:
count:
type: integer
next:
type:
- string
- 'null'
format: uri
previous:
type:
- string
- 'null'
format: uri
results:
type: array
items:
$ref: '#/components/schemas/Payment'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
'*/*':
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- ascend (v2)
summary: Export csv
deprecated: true
/v2/ascend/payments/filter-options:
parameters: []
get:
operationId: v2_ascend_payments_filter_options
description: 'Get available filter options for frontend dropdowns.
Returns unique values for each filterable field.
Restricted to broker users and maintainer users via OrPermissions.
Admin and maintainer users see agency-wide filter options, while member users see only options for data they can access.'
parameters:
- name: ordering
in: query
description: Which field to use when ordering the results.
required: false
schema:
type: string
- name: search
in: query
description: A search term.
required: false
schema:
type: string
- name: limit
in: query
description: Number of results to return per page.
required: false
schema:
type: integer
- name: offset
in: query
description: The initial index from which to return the results.
required: false
schema:
type: integer
responses:
'200':
description: ''
content:
application/json:
schema:
required:
- count
- results
type: object
properties:
count:
type: integer
next:
type:
- string
- 'null'
format: uri
previous:
type:
- string
- 'null'
format: uri
results:
type: array
items:
$ref: '#/components/schemas/Payment'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'500':
description: Internal server error.
tags:
- ascend (v2)
summary: Filter options
deprecated: true
/v2/ascend/payments/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
get:
operationId: v2_ascend_payments_read
description: 'ViewSet for retrieving payment data from Ascend.
Provides payment information including premium amounts, due dates,
broker information, and carrier details.
Supports filtering by:
- insured: Filter by insured ID (dropdown selection)
- quote_status: Filter by quote status (exact match)
- payment_status: Filter by program status (exact match)
- primary_agent: Filter by primary agent (team member) BrokerUser ID - supports multi-select with comma-separated BrokerUser IDs (e.g., "123,456,789")
- status: Filter by program status (exact match) - alias for payment_status
- carrier: Filter by carrier ID or identifier (partial match)
- coverage: Filter by coverage type ID or identifier (partial match)
Supports general search across:
- insured_name, broker_name, producer_name, carrier_name, coverage_type_name
Use ?search=term to search across multiple name fields simultaneously'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentDetail'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions to access it.
content:
application/json:
schema:
$ref: '#/components/schemas/APIException'
'500':
description: Internal server error.
tags:
- ascend (v2)
summary: Retrieve Payment
deprecated: true
/v2/ascend/payments/{id}/billables/{billable_id}:
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: billable_id
in: path
required: true
schema:
type: string
patch:
operationId: v2_ascend_payments_update_billable
description: 'Update a billable (policy) for this payment. Only allowed when not purchased.
PATCHes the billable in Ascend and syncs the local DB from the response.
PATCH /apis/v2/ascend/payments/{id}/billables/{billable_id}'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
'400':
description: Invalid input.
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions to access it.
content:
application/json:
schema:
$ref: '#/components/schemas/APIException'
'500':
description: Internal server error.
tags:
- ascend (v2)
summary: Update billable
deprecated: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
required: true
/v2/ascend/payments/{id}/due-date:
parameters:
- name: id
in: path
required: true
schema:
type: string
patch:
operationId: v2_ascend_payments_update_due_date
summary: Update program due date
description: 'Saves the due_date to the local database immediately for instant UI feedback,
then schedules an async task to sync the change to Ascend.
PATCH /apis/v2/ascend/payments/{id}/due-date'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
'400':
description: Invalid input.
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'403':
description: Authentication credentials were invalid, absent or insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions to access it.
content:
application/json:
schema:
$ref: '#/components/schemas/APIException'
'500':
description: Internal server error.
tags:
- ascend (v2)
deprecated: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Payment'
required: true
components:
schemas:
ValidationError:
title: Validation Error
type: object
properties:
non_field_errors:
description: List of validation errors not related to any field
type: array
items:
type: string
additionalProperties:
description: A list of error messages for each field that triggered a validation error
type: array
items:
type: string
Payment:
type: object
properties:
id:
title: Id
type: string
format: uuid
readOnly: true
insured:
title: Insured
type: string
readOnly: true
payment_status:
title: Payment status
type: string
readOnly: true
quote_status:
title: Quote status
type: string
readOnly: true
quote:
title: Quote
type: string
readOnly: true
total:
title: Total
type: string
readOnly: true
due_date:
title: Due date
type: string
readOnly: true
broker:
title: Broker
type: string
readOnly: true
producer:
title: Producer
type: string
readOnly: true
all_agents:
title: All agents
type: string
readOnly: true
carrier:
title: Carrier
type: string
readOnly: true
coverage_type:
title: Coverage type
type: string
readOnly: true
actions:
title: Actions
type: string
readOnly: true
APIException:
title: Generic API Error
required:
- detail
type: object
properties:
detail:
description: Error details
type: string
InvoiceDetail:
type: object
properties:
id:
title: Id
type: string
format: uuid
readOnly: true
ascend_id:
title: Ascend id
type:
- string
- 'null'
maxLength: 255
status:
title: Status
type:
- string
- 'null'
enum:
- draft
- awaiting_payment
- processing_payment
- paid
- overdue
- void
status_display:
title: Status display
type: string
readOnly: true
due_date:
title: Due date
type:
- string
- 'null'
format: date
invoice_number:
title: Invoice number
type:
- string
- 'null'
maxLength: 255
issued_at:
title: Issued at
type:
- string
- 'null'
format: date-time
total_amount:
title: Total amount
type: string
readOnly: true
paid_at:
title: Paid at
type:
- string
- 'null'
format: date-time
invoice_url:
title: Invoice url
type:
- string
- 'null'
format: uri
maxLength: 2048
checkout_url:
title: Checkout url
type:
- string
- 'null'
format: uri
maxLength: 2048
payment_method:
title: Payment method
type:
- object
- 'null'
payer_name:
title: Payer name
type:
- string
- 'null'
maxLength: 255
memo:
title: Memo
type:
- string
- 'null'
invoice_items:
title: Invoice items
type: object
agent_invoice_docs:
title: Agent invoice docs
type: object
download_url:
title: Download url
type: string
readOnly: true
receipt_url:
title: Receipt url
type: string
readOnly: true
days_until_due:
title: Days until due
type: string
readOnly: true
is_overdue:
title: Is overdue
type: string
readOnly: true
PaymentDetail:
type: object
properties:
id:
title: Id
type: string
format: uuid
readOnly: true
ascend_id:
title: Ascend id
type:
- string
- 'null'
maxLength: 255
insured:
title: Insured
type: string
readOnly: true
business:
title: Business
type: string
readOnly: true
payment_status:
title: Payment status
type: string
readOnly: true
quote_status:
title: Quote status
type: string
readOnly: true
quote:
title: Quote
type: string
readOnly: true
total:
title: Total
type: string
readOnly: true
premium:
title: Premium
type: string
readOnly: true
due_date:
title: Due date
type: string
readOnly: true
broker:
title: Broker
type: string
readOnly: true
producer:
title: Producer
type: string
readOnly: true
all_agents:
title: All agents
type: string
readOnly: true
account_manager:
title: Account manager
type: string
readOnly: true
carrier:
title: Carrier
type: string
readOnly: true
coverage_type:
title: Coverage type
type: string
readOnly: true
actions:
title: Actions
type: string
readOnly: true
invoices:
type: array
items:
$ref: '#/components/schemas/InvoiceDetail'
readOnly: true
loans:
type: array
items:
$ref: '#/components/schemas/LoanDetail'
readOnly: true
billables:
type: array
items:
$ref: '#/components/schemas/BillableDetail'
readOnly: true
payout_info:
title: Payout info
type: string
readOnly: true
payment_methods:
title: Payment methods
type: string
readOnly: true
payment_options:
title: Payment options
type: string
readOnly: true
timeline:
title: Timeline
type: string
readOnly: true
urls:
title: Urls
type: string
readOnly: true
organization_info:
title: Organization info
type: string
readOnly: true
metadata:
title: Metadata
type:
- object
- 'null'
source:
title: Source
type:
- string
- 'null'
maxLength: 50
selected_payment_option_type:
title: Selected payment option type
type:
- string
- 'null'
maxLength: 50
created_at:
title: Created at
type: string
format: date-time
readOnly: true
updated_at:
title: Updated at
type: string
format: date-time
readOnly: true
LoanDetail:
type: object
properties:
id:
title: Id
type: string
format: uuid
readOnly: true
ascend_id:
title: Ascend id
type:
- string
- 'null'
maxLength: 255
status:
title: Status
type:
- string
- 'null'
enum:
- bound
- canceled
- completed
- pending_bind
- pending_cancel
- ready
- missing_terms
status_display:
title: Status display
type: string
readOnly: true
allowed_late_days:
title: Allowed late days
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
amount_financed:
title: Amount financed
type: string
readOnly: true
apr:
title: Apr
type:
- string
- 'null'
format: decimal
downpayment:
title: Downpayment
type: string
readOnly: true
late_charge:
title: Late charge
type: string
readOnly: true
number_of_payments:
title: Number of payments
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
term_payment:
title: Term payment
type: string
readOnly: true
is_active:
title: Is active
type: boolean
completed_disclosure_url:
title: Completed disclosure url
type:
- string
- 'null'
format: uri
maxLength: 2048
ascend_created_at:
title: Ascend created at
type:
- string
- 'null'
format: date-time
ascend_updated_at:
title: Ascend updated at
type:
- string
- 'null'
format: date-time
GenericError:
title: Generic API Error
required:
- detail
type: object
properties:
detail:
description: Error details
type: string
BillableDetail:
required:
- billable_identifier
- effective_date
- expiration_date
type: object
properties:
id:
title: Id
type: string
format: uuid
readOnly: true
ascend_id:
title: Ascend id
type:
- string
- 'null'
maxLength: 255
billable_type:
title: Billable type
type: string
enum:
- quote
- endorsement
billable_identifier:
title: Billable identifier
type: string
maxLength: 255
minLength: 1
policy_number:
title: Policy number
type:
- string
- 'null'
maxLength: 255
effective_date:
title: Effective date
type: string
format: date
expiration_date:
title: Expiration date
type: string
format: date
premium:
title: Premium
type: string
readOnly: true
agency_fees:
title: Agency fees
type: string
readOnly: true
broker_fee:
title: Broker fee
type: string
readOnly: true
policy_fee:
title: Policy fee
type: string
readOnly: true
other_fees:
title: Other fees
type: string
readOnly: true
taxes_and_fees:
title: Taxes and fees
type: string
readOnly: true
surplus_lines_tax:
title: Surplus lines tax
type: string
readOnly: true
total_fees:
title: Total fees
type: string
readOnly: true
description:
title: Description
type:
- string
- 'null'
min_earned_rate:
title: Min earned rate
description: Minimum earned premium rate as a decimal (e.g., 0.25 for 25%)
type:
- number
- 'null'
carrier_detail:
title: Carrier detail
type: string
readOnly: true
coverage_type_detail:
title: Coverage type detail
type: string
readOnly: true
wholesaler_detail:
title: Wholesaler detail
type: string
readOnly: true
quote_detail:
title: Quote detail
type: string
readOnly: true
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'
- 'quote (v2): coverages'
- 'quote (v2): quote-policies'
- 'quote (v2): quotes'
- 'quote (v2): tasks'
- quote_ai (v2)
- name: Reports
tags:
- reports
- name: Reward
tags:
- reward
- name: Risk manager
tags:
- risk_manager
- name: Sanity check AI
tags:
- sanity_check_ai
- name: Storefront (v2)
tags:
- storefront (v2)
- name: Stripe
tags:
- stripe
- name: Suggestion AI
tags:
- suggestion_ai
- name: Treasury (v2)
tags:
- treasury (v2)
- name: User
tags:
- user
- 'user: default-access-role'