licensy-ai Reports API
The reports API from licensy-ai — 7 operation(s) for reports.
The reports API from licensy-ai — 7 operation(s) for reports.
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/licensy-ai:licensy-ai-reports-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Fast Reports API
version: 0.1.0
tags:
- name: Reports
paths:
/api/v1/reports/:
get:
tags:
- Reports
summary: Get all reports
description: Returns all reports for the current user with license statistics
operationId: get_reports_api_v1_reports__get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Report'
type: array
title: Response Get Reports Api V1 Reports Get
security:
- HTTPBearer: []
post:
tags:
- Reports
summary: Create a new report
description: Creates a new report with Google Sheet integration
operationId: create_report_api_v1_reports__post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReportCreate'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/reports/{report_id}:
get:
tags:
- Reports
summary: Get report by ID
description: Returns a specific report by its ID with license statistics
operationId: get_report_api_v1_reports__report_id__get
security:
- HTTPBearer: []
parameters:
- name: report_id
in: path
required: true
schema:
type: string
title: Report Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Reports
summary: Update report
description: Updates an existing report
operationId: update_report_api_v1_reports__report_id__put
security:
- HTTPBearer: []
parameters:
- name: report_id
in: path
required: true
schema:
type: string
title: Report Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReportUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Reports
summary: Delete report
description: Deletes a report and its associated data
operationId: delete_report_api_v1_reports__report_id__delete
security:
- HTTPBearer: []
parameters:
- name: report_id
in: path
required: true
schema:
type: string
title: Report Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Delete Report Api V1 Reports Report Id Delete
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/reports/{report_id}/licenses:
get:
tags:
- Reports
summary: Get report licenses
description: Get the licenses associated with a report. Licenses the user hid or removed from the report are skipped; pass include_hidden=true to also return hidden ones. Removed (deleted) licenses are never returned.
operationId: get_report_licenses_api_v1_reports__report_id__licenses_get
security:
- HTTPBearer: []
parameters:
- name: report_id
in: path
required: true
schema:
type: string
title: Report Id
- name: include_hidden
in: query
required: false
schema:
type: boolean
description: Also return licenses the user hid from the report (removed licenses stay excluded)
default: false
title: Include Hidden
description: Also return licenses the user hid from the report (removed licenses stay excluded)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReportLicense'
title: Response Get Report Licenses Api V1 Reports Report Id Licenses Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/reports/my:
get:
tags:
- Reports
summary: Get my reports
description: Returns all reports for the authenticated user with license statistics
operationId: get_my_reports_api_v1_reports_my_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Report'
type: array
title: Response Get My Reports Api V1 Reports My Get
security:
- HTTPBearer: []
/api/v1/reports/{report_id}/status:
get:
tags:
- Reports
summary: Get license status
description: Returns license status for a report
operationId: get_license_status_api_v1_reports__report_id__status_get
security:
- HTTPBearer: []
parameters:
- name: report_id
in: path
required: true
schema:
type: string
format: uuid
title: Report Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/reports/trigger-update:
post:
tags:
- Reports
summary: Trigger manual report update
description: Manually triggers the update_all_reports function
operationId: trigger_update_api_v1_reports_trigger_update_post
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Trigger Update Api V1 Reports Trigger Update Post
security:
- HTTPBearer: []
/api/v1/reports/count:
get:
tags:
- Reports
summary: Get report count
description: Returns the current report count and limits for the user
operationId: get_report_count_api_v1_reports_count_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
additionalProperties: true
type: object
title: Response Get Report Count Api V1 Reports Count Get
security:
- HTTPBearer: []
components:
schemas:
ReportLicense:
properties:
id:
type: string
title: Id
state:
type: string
title: State
license_number:
type: string
title: License Number
license_type:
anyOf:
- type: string
- type: 'null'
title: License Type
status:
anyOf:
- type: string
- type: 'null'
title: Status
issued:
anyOf:
- type: string
- type: 'null'
title: Issued
expired:
anyOf:
- type: string
- type: 'null'
title: Expired
hidden:
anyOf:
- type: boolean
- type: 'null'
title: Hidden
default: false
deleted:
anyOf:
- type: boolean
- type: 'null'
title: Deleted
default: false
renewed_at:
anyOf:
- type: string
- type: 'null'
title: Renewed At
renewed_to:
anyOf:
- type: string
- type: 'null'
title: Renewed To
full_name:
anyOf:
- type: string
- type: 'null'
title: Full Name
professional:
anyOf:
- type: string
- type: 'null'
title: Professional
updated_at:
anyOf:
- type: string
- type: 'null'
title: Updated At
screenshot_url:
anyOf:
- type: string
- type: 'null'
title: Screenshot Url
board_record_changed:
anyOf:
- type: boolean
- type: 'null'
title: Board Record Changed
default: false
board_record_changed_at:
anyOf:
- type: string
- type: 'null'
title: Board Record Changed At
board_record_changed_fields:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Board Record Changed Fields
searched_license_number:
anyOf:
- type: string
- type: 'null'
title: Searched License Number
searched_license_number_source:
anyOf:
- type: string
- type: 'null'
title: Searched License Number Source
license_number_mismatch:
anyOf:
- type: boolean
- type: 'null'
title: License Number Mismatch
default: false
status_class:
anyOf:
- type: string
- type: 'null'
title: Status Class
name_match:
anyOf:
- type: string
- type: 'null'
title: Name Match
name_differs_from_report:
anyOf:
- type: boolean
- type: 'null'
title: Name Differs From Report
default: false
needs_review:
anyOf:
- type: boolean
- type: 'null'
title: Needs Review
default: false
review_reason:
anyOf:
- type: string
- type: 'null'
title: Review Reason
review_label:
anyOf:
- type: string
- type: 'null'
title: Review Label
review_decision:
anyOf:
- type: string
- type: 'null'
title: Review Decision
capture_type:
anyOf:
- type: string
- type: 'null'
title: Capture Type
capture_label:
anyOf:
- type: string
- type: 'null'
title: Capture Label
last_verified_at:
anyOf:
- type: string
- type: 'null'
title: Last Verified At
last_checked_at:
anyOf:
- type: string
- type: 'null'
title: Last Checked At
first_failed_at:
anyOf:
- type: string
- type: 'null'
title: First Failed At
freshness_status:
anyOf:
- type: string
- type: 'null'
title: Freshness Status
freshness_reason:
anyOf:
- type: string
- type: 'null'
title: Freshness Reason
stale_after_hours:
anyOf:
- type: integer
- type: 'null'
title: Stale After Hours
check_status:
anyOf:
- type: string
- type: 'null'
title: Check Status
type: object
required:
- id
- state
- license_number
- issued
- expired
title: ReportLicense
description: License row in report responses; freshness fields serialize last.
ReportCreate:
properties:
name:
type: string
title: Name
firstName:
type: string
title: Firstname
lastName:
type: string
title: Lastname
middleName:
anyOf:
- type: string
- type: 'null'
title: Middlename
licenseType:
type: string
title: Licensetype
states:
items:
type: string
type: array
title: States
type: object
required:
- name
- firstName
- lastName
- licenseType
- states
title: ReportCreate
examples:
- firstName: John
lastName: Smith
licenseType: MD
middleName: ''
name: Sample Report
states:
- Alaska
- Arizona
IdentityActionRequired:
properties:
reason:
type: string
title: Reason
description: 'Why: ''needs_npi'' (several same-name physicians, no NPI on the report) or ''no_licenses_found'' (all-states search, nothing linked; flag-gated). Enum; more reasons may be added.'
action:
type: string
title: Action
description: 'What fixes it: ''add_npi'' = POST /api/v2/reports/{id}/link-npi.'
message:
type: string
title: Message
description: 'Customer-facing text, e.g. ''Identity unconfirmed: add NPI''.'
flagged_license_count:
type: integer
title: Flagged License Count
description: Linked licenses held back (listed, not counted) for this reason.
default: 0
type: object
required:
- reason
- action
- message
title: IdentityActionRequired
description: 'What the customer must do before this report''s licenses can be counted
as its person''s (app/utils/report_identity.py).'
ReportUpdate:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
first_name:
anyOf:
- type: string
- type: 'null'
title: First Name
last_name:
anyOf:
- type: string
- type: 'null'
title: Last Name
middle_name:
anyOf:
- type: string
- type: 'null'
title: Middle Name
license_type:
anyOf:
- type: string
- type: 'null'
title: License Type
google_sheet_url:
anyOf:
- type: string
- type: 'null'
title: Google Sheet Url
type: object
title: ReportUpdate
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Report:
properties:
id:
type: string
title: Id
name:
type: string
title: Name
first_name:
type: string
title: First Name
last_name:
type: string
title: Last Name
middle_name:
anyOf:
- type: string
- type: 'null'
title: Middle Name
license_type:
type: string
title: License Type
states:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: States
npi_number:
anyOf:
- type: string
- type: 'null'
title: Npi Number
report_type:
anyOf:
- type: string
- type: 'null'
title: Report Type
default: name
google_sheet_url:
anyOf:
- type: string
- type: 'null'
title: Google Sheet Url
airtable_base_url:
anyOf:
- type: string
- type: 'null'
title: Airtable Base Url
created_at:
type: string
title: Created At
user_id:
type: string
title: User Id
license_ids:
anyOf:
- items:
additionalProperties: true
type: object
type: array
- type: 'null'
title: License Ids
total_license:
anyOf:
- type: integer
- type: 'null'
title: Total License
default: 0
active_license:
anyOf:
- type: integer
- type: 'null'
title: Active License
default: 0
expiring_license:
anyOf:
- type: integer
- type: 'null'
title: Expiring License
default: 0
expired_license:
anyOf:
- type: integer
- type: 'null'
title: Expired License
default: 0
inactive_license:
anyOf:
- type: integer
- type: 'null'
title: Inactive License
default: 0
update_excuted_date:
anyOf:
- type: string
- type: 'null'
title: Update Excuted Date
update_status:
anyOf:
- type: string
- type: 'null'
title: Update Status
states_discovery_status:
anyOf:
- type: string
- type: 'null'
title: States Discovery Status
last_full_rescan_at:
anyOf:
- type: string
- type: 'null'
title: Last Full Rescan At
free_rescan_available:
anyOf:
- type: boolean
- type: 'null'
title: Free Rescan Available
default: false
state_scan_results:
anyOf:
- additionalProperties:
type: string
type: object
- type: 'null'
title: State Scan Results
inactive_only_states:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Inactive Only States
rescan_interval_days:
anyOf:
- type: integer
- type: 'null'
title: Rescan Interval Days
next_allowed_at:
anyOf:
- type: string
- type: 'null'
title: Next Allowed At
biweekly_states:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Biweekly States
cadence:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Cadence
needs_disambiguation:
anyOf:
- type: boolean
- type: 'null'
title: Needs Disambiguation
default: false
disambiguation_reason:
anyOf:
- type: string
- type: 'null'
title: Disambiguation Reason
identity_status:
anyOf:
- type: string
- type: 'null'
title: Identity Status
default: ok
action_required:
anyOf:
- $ref: '#/components/schemas/IdentityActionRequired'
- type: 'null'
needs_review_count:
anyOf:
- type: integer
- type: 'null'
title: Needs Review Count
type: object
required:
- id
- name
- first_name
- last_name
- middle_name
- license_type
- google_sheet_url
- airtable_base_url
- created_at
- user_id
title: Report
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer