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/fintary-ams-policies-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
openapi: 3.2.0
info:
title: Fintary AMS API documentation AMS - Policies API
version: '1.0'
description: Policy management endpoints
servers:
- url: https://api.fintary.com
description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- BearerAuth: []
tags:
- name: AMS - Policies
description: Policy management endpoints
paths:
/api/ams/policies/{strId}/case-manager:
patch:
summary: Update policy case manager
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsUpdatePolicyCaseManagerSchema'
responses:
'200':
description: Updated
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyCaseManagerUpdateResponseSchema'
/api/ams/policies/{strId}/commission:
get:
summary: Get policy commission info (receivables, payouts by role, statement totals)
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyCommissionDetailSchema'
'404':
description: Not found
/api/ams/policies/{strId}/customers:
get:
summary: List customers associated with a policy
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyCustomerListItemSchema'
'404':
description: Not found
/api/ams/policies/{strId}/documents/{documentStrId}:
delete:
summary: Delete policy document
description: 'Removes the document from the Document Repository Service. Metadata is immutable in DRS, so there is no update route -- name and expiry are captured at upload.
'
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
- name: documentStrId
in: path
required: true
schema:
type: string
responses:
'200':
description: Deleted
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
example: true
'404':
description: Not found
/api/ams/policies/{strId}/documents/{documentStrId}/download:
get:
summary: Short-lived signed download URL for a policy document
description: 'Returns a short-lived signed URL issued by the Document Repository Service. The document is resolved through its policy, so one belonging to another policy or account cannot be fetched.
'
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
- name: documentStrId
in: path
required: true
schema:
type: string
responses:
'200':
description: Signed download URL
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
url:
type: string
expiresAt:
type:
- string
- 'null'
format: date-time
'404':
description: Not found
/api/ams/policies/{strId}/documents/finalize:
post:
summary: Finalize a policy document upload (phase 2 of two)
description: 'Flips the Document Repository Service document to ACTIVE once the client has uploaded the bytes to the signed URL. Until this call lands the document is not returned by the list endpoint.
'
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsFinalizePolicyDocumentSchema'
responses:
'200':
description: Finalized
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDocumentDetailSchema'
'404':
description: Not found
/api/ams/policies/{strId}/documents:
get:
summary: List policy documents (Document Repository Service)
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyDocumentDetailSchema'
'404':
description: Not found
post:
summary: Start a policy document upload (phase 1 of two)
description: 'Mints a short-lived signed PUT URL from the Document Repository Service. The client uploads the bytes straight to storage, then calls the finalize endpoint. The document is stamped with `metadata.policyId`.
'
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsCreatePolicyDocumentSchema'
responses:
'201':
description: Upload ticket created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDocumentUploadTicketSchema'
'404':
description: Not found
/api/ams/policies/{strId}:
get:
summary: Policy detail
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDetailResponseSchema'
'404':
description: Not found
patch:
summary: Update policy
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsUpdatePolicySchema'
responses:
'200':
description: Updated
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDetailResponseSchema'
'404':
description: Not found
delete:
summary: Delete policy
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Deleted
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
example: true
'404':
description: Not found
/api/ams/policies/{strId}/status:
patch:
summary: Change policy status
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsUpdatePolicyStatusSchema'
responses:
'200':
description: Updated
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDetailResponseSchema'
'404':
description: Not found
/api/ams/policies/{strId}/tasks/{taskId}:
patch:
summary: Update policy task
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
- name: taskId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsUpdatePolicyTaskSchema'
responses:
'200':
description: Updated
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyTaskDetailSchema'
'404':
description: Not found
delete:
summary: Delete policy task
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
- name: taskId
in: path
required: true
schema:
type: string
responses:
'200':
description: Deleted
content:
application/json:
schema:
type: object
properties:
data:
type: boolean
example: true
'404':
description: Not found
/api/ams/policies/{strId}/tasks:
get:
summary: List policy tasks
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyTaskDetailSchema'
'404':
description: Not found
post:
summary: Create policy task
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsCreatePolicyTaskSchema'
responses:
'200':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyTaskDetailSchema'
'404':
description: Not found
/api/ams/policies/{strId}/team:
get:
summary: Get policy team
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyTeamMemberDetailSchema'
'404':
description: Not found
patch:
summary: Update policy team
tags:
- AMS - Policies
parameters:
- name: strId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsUpdatePolicyTeamSchema'
responses:
'200':
description: Updated
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyTeamMemberDetailSchema'
'404':
description: Not found
/api/ams/policies/bulk-update:
patch:
summary: Bulk update policies
tags:
- AMS - Policies
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsBulkUpdatePoliciesBodySchema'
responses:
'200':
description: Bulk update results
content:
application/json:
schema:
$ref: '#/components/schemas/AmsBulkUpdateResponseSchema'
/api/ams/policies/filter-options:
post:
summary: Get filter option values for the policy list
tags:
- AMS - Policies
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/AmsPolicyFilterOptionsQuerySchema'
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyFilterOptionsResponseSchema'
/api/ams/policies/filters:
get:
summary: Get policy list filter metadata
tags:
- AMS - Policies
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/AmsPolicyFilterMetadataSchema'
/api/ams/policies:
post:
summary: Create a policy
tags:
- AMS - Policies
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AmsCreatePolicySchema'
responses:
'200':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicyDetailResponseSchema'
/api/ams/policies/list:
post:
summary: List policies with basic info
tags:
- AMS - Policies
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/AmsPolicyListQuerySchema'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyListResponseSchema'
/api/ams/policies/summary:
get:
summary: Policy summary grouped by status
tags:
- AMS - Policies
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/PolicySummaryResponseSchema'
components:
schemas:
AmsFilterNodeSchema:
anyOf:
- $ref: '#/components/schemas/AmsFilterConditionSchema'
- type: object
properties:
and:
type: array
items:
$ref: '#/components/schemas/AmsFilterNodeSchema'
minItems: 1
required:
- and
- type: object
properties:
or:
type: array
items:
$ref: '#/components/schemas/AmsFilterNodeSchema'
minItems: 1
required:
- or
- type: object
properties:
not:
$ref: '#/components/schemas/AmsFilterNodeSchema'
required:
- not
PolicyTeamMemberDetailSchema:
type: object
properties:
strId:
type: string
contactStrId:
type: string
role:
type: string
roleLabel:
type:
- string
- 'null'
isPrimary:
type: boolean
agentSplit:
type:
- number
- 'null'
contact:
$ref: '#/components/schemas/PolicyTeamMemberContactSchema'
required:
- strId
- contactStrId
- role
- roleLabel
- isPrimary
- agentSplit
- contact
PolicyCommissionPayoutByRoleSchema:
type: object
properties:
role:
type: string
roleLabel:
type:
- string
- 'null'
amount:
type: string
required:
- role
- roleLabel
- amount
PolicyListItemSchema:
type: object
properties:
strId:
type: string
policyId:
type:
- string
- 'null'
policyStatus:
type:
- string
- 'null'
caseStatus:
type:
- string
- 'null'
customerName:
type:
- string
- 'null'
customerType:
type:
- string
- 'null'
productName:
type:
- string
- 'null'
productType:
type:
- string
- 'null'
productSubType:
type:
- string
- 'null'
productOptionName:
type:
- string
- 'null'
writingCarrierName:
type:
- string
- 'null'
effectiveDate:
type:
- string
- 'null'
expirationDate:
type:
- string
- 'null'
signedDate:
type:
- string
- 'null'
policyDate:
type:
- string
- 'null'
cancellationDate:
type:
- string
- 'null'
reinstatementDate:
type:
- string
- 'null'
firstPaymentDate:
type:
- string
- 'null'
firstProcessedDate:
type:
- string
- 'null'
premiumAmount:
type:
- string
- 'null'
commissionableAmount:
type:
- string
- 'null'
excessAmount:
type:
- string
- 'null'
commissionsExpected:
type:
- string
- 'null'
customerPaidPremiumAmount:
type:
- string
- 'null'
splitPercentage:
type:
- string
- 'null'
paymentMode:
type:
- string
- 'null'
policyTermMonths:
type:
- integer
- 'null'
geoState:
type:
- string
- 'null'
notes:
type:
- string
- 'null'
dba:
type:
- string
- 'null'
internalId:
type:
- string
- 'null'
transactionType:
type:
- string
- 'null'
accountType:
type:
- string
- 'null'
groupId:
type:
- string
- 'null'
groupName:
type:
- string
- 'null'
aggregationId:
type:
- string
- 'null'
aggregationPrimary:
type:
- boolean
- 'null'
type:
type:
- string
- 'null'
tags:
type: array
items:
type: string
documentId:
type:
- string
- 'null'
processingStatus:
type:
- string
- 'null'
commissionProfileId:
type:
- string
- 'null'
syncId:
type:
- string
- 'null'
applicationDate:
type:
- string
- 'null'
issueDate:
type:
- string
- 'null'
issueAge:
type:
- integer
- 'null'
agentName:
type:
- string
- 'null'
createdAt:
type: string
updatedAt:
type:
- string
- 'null'
customFields:
type: array
items:
$ref: '#/components/schemas/AmsCustomFieldValueSchema'
receivables:
type: array
items:
type: object
properties:
id:
type: string
party:
type: string
compensationType:
type:
- string
- 'null'
rate:
type:
- string
- 'null'
amount:
type:
- string
- 'null'
contactId:
type:
- string
- 'null'
contactName:
type:
- string
- 'null'
date:
type:
- string
- 'null'
required:
- id
- party
required:
- strId
- policyId
- policyStatus
- caseStatus
- customerName
- customerType
- productName
- productType
- productSubType
- productOptionName
- writingCarrierName
- effectiveDate
- expirationDate
- signedDate
- policyDate
- cancellationDate
- reinstatementDate
- firstPaymentDate
- firstProcessedDate
- premiumAmount
- commissionableAmount
- excessAmount
- commissionsExpected
- customerPaidPremiumAmount
- splitPercentage
- paymentMode
- policyTermMonths
- geoState
- notes
- dba
- internalId
- transactionType
- accountType
- groupId
- groupName
- aggregationId
- aggregationPrimary
- type
- tags
- documentId
- processingStatus
- commissionProfileId
- syncId
- applicationDate
- issueDate
- issueAge
- agentName
- createdAt
- updatedAt
- customFields
- receivables
AmsFilterConditionSchema:
type: object
properties:
field:
type: string
minLength: 1
op:
type: string
enum:
- eq
- ne
- in
- gt
- gte
- lt
- lte
- contains
- starts_with
- ends_with
- exists
- is_empty
- is_not_empty
value:
$ref: '#/components/schemas/AmsFilterValueSchema'
required:
- field
- op
AmsCustomFieldValueInputSchema:
type: object
properties:
fieldDefinitionId:
type: string
minLength: 1
valueText:
type:
- string
- 'null'
valueNumber:
type:
- number
- 'null'
valueBoolean:
type:
- boolean
- 'null'
valueDate:
type:
- string
- 'null'
valueJson:
type:
- string
- 'null'
required:
- fieldDefinitionId
AmsPolicyFilterOptionsQuerySchema:
type: object
properties:
filter:
$ref: '#/components/schemas/AmsFilterNodeSchema'
search:
type: string
fields:
type: array
items:
type: string
default: []
optionSearch:
type: object
additionalProperties:
type: string
default: {}
optionLimit:
type: integer
minimum: 1
maximum: 500
default: 100
required:
- fields
- optionSearch
- optionLimit
PolicySummaryResponseSchema:
type: object
properties:
total:
type: integer
byStatus:
type: array
items:
type: object
properties:
status:
type: string
label:
type: string
count:
type: integer
required:
- status
- label
- count
required:
- total
- byStatus
AmsFinalizePolicyDocumentSchema:
type: object
properties:
documentStrId:
type: string
minLength: 1
fileSize:
type: integer
minimum: 0
fileHash:
type: string
required:
- documentStrId
PolicyDocumentUploadTicketSchema:
type: object
properties:
documentStrId:
type: string
signedPutUrl:
type: string
mimeType:
type: string
required:
- documentStrId
- signedPutUrl
- mimeType
PolicyCommissionDetailSchema:
type: object
properties:
receivables:
type: array
items:
$ref: '#/components/schemas/PolicyCommissionReceivableLineSchema'
totalReceivedToDate:
type: string
payoutsByRole:
type: array
items:
$ref: '#/components/schemas/PolicyCommissionPayoutByRoleSchema'
statementCount:
type: integer
totalPaidOut:
type: string
netProfit:
type: string
marginPercentRate:
type:
- string
- 'null'
required:
- receivables
- totalReceivedToDate
- payoutsByRole
- statementCount
- totalPaidOut
- netProfit
- marginPercentRate
PolicyFilterOptionFieldSchema:
type: object
properties:
field:
type: string
values:
type: array
items:
$ref: '#/components/schemas/PolicyFilterOptionValueSchema'
totalOptions:
type: integer
required:
- field
- values
- totalOptions
PolicyFilterOptionValueSchema:
type: object
properties:
value:
type: string
label:
type: string
count:
type: integer
required:
- value
- label
- count
AmsPolicyTeamMemberSchema:
type: object
properties:
contactStrId:
type: string
minLength: 1
role:
type: string
minLength: 1
roleLabel:
type: string
isPrimary:
type: boolean
default: false
agentSplit:
type:
- number
- 'null'
required:
- contactStrId
- role
- isPrimary
PolicyListResponseSchema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PolicyListItemSchema'
pagination:
$ref: '#/components/schemas/AmsPaginationSchema'
required:
- data
- pagination
AmsUpdatePolicyStatusSchema:
type: object
properties:
status:
type: string
minLength: 1
required:
- status
AmsPolicyDocumentStatusSchema:
type: string
enum:
- pending
- ready
AmsPolicyFilterMetadataSchema:
type: object
properties:
fields:
type: array
items:
$ref: '#/components/schemas/AmsFilterFieldSchema'
required:
- fields
AmsFilterValueSchema:
anyOf:
- anyOf:
- type: string
- type: number
- type: boolean
- type: 'null'
- type: array
items:
anyOf:
- type: string
- type: number
- type: boolean
minItems: 1
PolicyTeamMemberContactSchema:
type: object
properties:
strId:
type:
- string
- 'null'
firstName:
type:
- string
- 'null'
lastName:
type:
- string
- 'null'
name:
type:
- string
- 'null'
email:
type:
- string
- 'null'
phone:
type:
- string
- 'null'
agentCode:
type:
- string
- 'null'
companyName:
type:
- string
- 'null'
required:
- strId
- firstName
- lastName
- name
- email
- phone
- agentCode
- companyName
PolicyCustomerListItemSchema:
type: object
properties:
strId:
type: string
firstName:
type: string
lastName:
type: string
companyName:
type: string
email:
type: string
phone:
type: string
type:
type:
- string
- 'null'
status:
type: string
required:
- strId
- type
PolicyFilterOptionsResponseSchema:
type: object
properties:
fields:
type: array
items:
$ref: '#/components/schemas/PolicyFilterOptionFieldSchema'
dateRanges:
type: object
additionalProperties:
type: object
properties:
min:
type: string
max:
type: string
totalPolicies:
type: integer
required:
- fields
- dateRanges
- totalPolicies
AmsBulkUpdatePoliciesBodySchema:
type: object
properties:
strIds:
type: array
items:
type: string
minLength: 1
minItems: 1
data:
$ref: '#/components/schemas/AmsBulkUpdatePolicyDataSchema'
required:
- strIds
- data
PolicyCaseManagerUpdateResponseSchema:
type: object
properties:
strId:
type: string
caseManagerId:
type: string
required:
- strId
AmsCreatePolicyDocumentSchema:
type: object
properties:
name:
type: string
minLength: 1
fileName:
type: string
minLength: 1
mimeType:
type: string
minLength: 1
fileSize:
type: integer
minimum: 0
expiryDate:
type: string
required:
- name
- fileName
- mimeType
AmsFilterFieldSchema:
typ
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fintary/refs/heads/main/openapi/fintary-ams-policies-api-openapi.yml