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/openpath-orgs-reports-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: Openpath API Documentation auth Orgs/reports API
version: 1.0.0
description: Authentication and Login
servers:
- url: https://api.openpath.com
tags:
- name: orgs/reports
description: Reports and Analytics
paths:
/orgs/{orgId}/reports/deviceTimeZoneDependentRelativeTimeRanges:
get:
summary: Get the search and display unix timestamp ranges for relative times based on the device with a timezone in the min utc offset
operationId: getDeviceTimeZoneDependentRelativeTimeRanges
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-occupancyReport:w,o{params.orgId}-occupancyReport:r,o{params.orgId}-rpt:r,o{params.orgId}-rpt:w,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: getDeviceTimeZoneDependentRelativeTimeRanges'
parameters:
- name: orgId
in: path
required: true
schema:
type: integer
- x-constraint:
single: true
name: siteIds
in: query
style: form
explode: true
schema:
type: array
items:
type: integer
minimum: 1
- x-constraint:
single: true
name: zoneIds
in: query
style: form
explode: true
schema:
type: array
items:
type: integer
minimum: 1
- name: referenceTime
in: query
schema:
type: string
format: date
tags:
- orgs/reports
security:
- jwt: []
responses:
'200':
description: Successful
content:
application/json:
schema:
type: object
properties:
totalCount:
type: integer
filteredCount:
type: integer
cursors:
type: object
properties:
nextCursor:
type:
- integer
- 'null'
x-alternatives:
- type:
- integer
- 'null'
- type:
- string
- 'null'
pattern: ^[a-zA-Z0-9,@._~-]+$
hasNextPage:
type: boolean
data:
type: array
items:
type: object
properties:
relativeTime:
type: string
enum:
- today
- thisWeek
- thisMonth
- thisQuarter
- thisYear
- yesterday
- lastFullWeek
- lastFullMonth
- lastFullQuarter
- last6FullMonths
- last12FullMonths
deviceMinUtcOffsetTimeZoneId:
type: string
displayStartDateUnix:
type: integer
minimum: 1721088000
displayEndDateUnix:
type: integer
minimum: 1721088000
searchStartDateUnix:
type: integer
minimum: 1721088000
searchEndDateUnix:
type: integer
minimum: 1721088000
required:
- relativeTime
- deviceMinUtcOffsetTimeZoneId
- displayStartDateUnix
- displayEndDateUnix
- searchStartDateUnix
- searchEndDateUnix
meta:
type: object
properties:
accessToken:
type:
- object
- 'null'
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
type:
- object
- 'null'
properties:
isSiteSpecific:
type: boolean
siteIds:
type:
- array
- 'null'
items:
type: integer
siteIdsByScope:
type:
- object
- 'null'
properties:
string:
type:
- array
- 'null'
items:
type: integer
x-op-scopes:
- o{params.orgId}-occupancyReport:w
- o{params.orgId}-occupancyReport:r
- o{params.orgId}-rpt:r
- o{params.orgId}-rpt:w
- o:w
- o:r
- s-o:w
- s-o:r
/orgs/{orgId}/reports/activity:
get:
summary: Get entry access activity
operationId: getActivity
description: 'Note: Please use `/org/{orgId}/reports/activity/events` API when possible as it replaces this API and is faster.<br/><br/>Returns activity events for the `time` specified date range. This API does not handle large date range requests. If not specified, the default search time span is 24 hours ago to now.<br/><br/>This API can return 422 Unprocessable Entity status code. A 422 is returned when the `time` filter specified a date range with more data than can be retrieved within the 55 second API timeout period. Please try narrowing the query date range or use the `/org/{orgId}/reports/activity/events` API as an alternative. The `/org/{orgId}/reports/activity/events` API does not have the 422 status code problem.<br/><br/>The difference between entryName, zoneName, and siteName vs. entryName2, zoneName2, and siteName2 is that the `*Name2` fields can potentially return "Multiple" as the name. This occurs when the entries array indicates multiple unique ids for that resource type. Whereas the entryId, entryName, zoneId, zoneName, siteId, and siteName values always equal their entries[0] (the first one) equivalent values.<br/><br/>__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-dash:w,o{params.orgId}-dash:r,o{params.orgId}-dashActivity:w,o{params.orgId}-dashActivity:r,o{params.orgId}-rpt:w,o{params.orgId}-rpt:r,o{params.orgId}-rptGeneral:w,o{params.orgId}-rptGeneral:r,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: getActivity'
parameters:
- name: x-op-debug
in: header
schema:
type: string
default: ''
pattern: ^((log-all)(,|$))*$
- name: orgId
in: path
required: true
schema:
type: integer
- name: limit
in: query
schema:
type: integer
default: 10000
maximum: 10000
minimum: 1
- name: offset
in: query
schema:
type: integer
default: 0
minimum: 0
- name: sort
in: query
schema:
type: string
default: time
pattern: ^[a-zA-Z0-9.]+(,\s*[a-zA-Z0-9.]+)*$
- name: order
in: query
schema:
type: string
default: desc
pattern: ^(asc|desc)+(,\s*(asc|desc)+)*$
- name: filter
in: query
schema:
type: string
- name: options
in: query
schema:
type: string
default: ''
maxLength: 512
pattern: ^((useOpProton|quick|noquick|withTouch|searchId:[a-zA-Z0-9_-]+)(,|$))*
- x-constraint:
single: true
name: customFieldIds
in: query
style: form
explode: true
schema:
type: array
items:
type: integer
tags:
- orgs/reports
security:
- jwt: []
responses:
'200':
description: Successful
content:
application/json:
schema:
type: object
properties:
totalCount:
type: integer
filteredCount:
type: integer
cursors:
type: object
properties:
nextCursor:
type:
- integer
- 'null'
x-alternatives:
- type:
- integer
- 'null'
- type:
- string
- 'null'
pattern: ^[a-zA-Z0-9,@._~-]+$
hasNextPage:
type: boolean
data:
type: array
items:
type: object
properties:
time:
type: number
timeIsoString:
type: string
userId:
type:
- number
- 'null'
userFirstName:
type:
- string
- 'null'
userMiddleName:
type:
- string
- 'null'
userLastName:
type:
- string
- 'null'
userName:
type:
- string
- 'null'
userEmail:
type: string
userMobilePhone:
type:
- string
- 'null'
userOrgId:
type:
- number
- 'null'
userOrgName:
type:
- string
- 'null'
userExternalId:
type:
- string
- 'null'
userIdpName:
type:
- string
- 'null'
userGroups:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
userSites:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
sourceName:
type: string
category:
type:
- string
- 'null'
subCategory:
type:
- string
- 'null'
credentialSubtype:
type: string
credentialTypeModelName:
type:
- string
- 'null'
credentialTypeName:
type:
- string
- 'null'
credentialDetail:
type:
- string
- 'null'
cardFields:
type:
- object
- 'null'
properties:
rcm:
type: string
pattern: ^[0-9]+$
facilityCode:
type: string
pattern: ^[0-9]+$
issueLevel:
type: string
pattern: ^[0-9]+$
cardId:
type: string
pattern: ^[0-9]+$
companyId:
type: string
pattern: ^[0-9]+$
companyCode:
type: string
pattern: ^[0-9]+$
siteCode:
type: string
pattern: ^[0-9]+$
oem:
type: string
pattern: ^[0-9]+$
acuId:
type:
- number
- 'null'
acuName:
type: string
entryId:
type:
- number
- 'null'
entryName:
type: string
entryName2:
type: string
zoneId:
type:
- number
- 'null'
zoneName:
type:
- string
- 'null'
zoneName2:
type:
- string
- 'null'
siteId:
type:
- number
- 'null'
siteName:
type:
- string
- 'null'
siteName2:
type:
- string
- 'null'
entries:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
zone:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
site:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
required:
- id
lockdownPlanId:
type:
- number
- 'null'
lockdownPlanName:
type: string
gatewayDevice:
type:
- object
- 'null'
properties:
type:
type:
- string
- 'null'
uid:
type:
- string
- 'null'
opal:
type: string
name:
type:
- string
- 'null'
required:
- type
sourceDevice:
type:
- object
- 'null'
properties:
type:
type:
- string
- 'null'
uid:
type:
- string
- 'null'
opal:
type: string
name:
type:
- string
- 'null'
required:
- type
deviceDetail:
type: string
deviceDetailName:
type: string
deviceTimezone:
type:
- string
- 'null'
readerId:
type:
- number
- 'null'
readerName:
type: string
readerPortNumber:
type:
- number
- 'null'
portNumber:
type: object
properties:
modelName:
type: string
enum:
- contactSensor
- genericInput
- reader
- rex
raw:
type: integer
acuId:
type: integer
expansionBoardNum:
type: integer
virtualPortNum:
type: integer
targetType:
type:
- string
- 'null'
targetName:
type:
- string
- 'null'
requestType:
type: string
requestId:
type: string
result:
type: string
resultDescription:
type: string
deniedReason:
type:
- string
- 'null'
connectionType:
type:
- string
- 'null'
location:
type: string
userCustomFields:
type: array
items:
type: object
properties:
id:
type: number
value:
type:
- string
- 'null'
customField:
type: object
properties:
id:
type: number
name:
type: string
customFieldType:
type: object
properties:
id:
type: number
name:
type: string
required:
- id
required:
- id
required:
- id
userCustomFieldsData:
type: object
firstAuthInfos:
type: array
items:
type: object
properties:
connectionType:
type:
- string
- 'null'
requestType:
type: string
credentialSubtype:
type: string
credentialTypeModelName:
type:
- string
- 'null'
credentialDetail:
type:
- string
- 'null'
credentialTypeName:
type:
- string
- 'null'
cardFields:
type:
- object
- 'null'
properties:
rcm:
type: string
pattern: ^[0-9]+$
facilityCode:
type: string
pattern: ^[0-9]+$
issueLevel:
type: string
pattern: ^[0-9]+$
cardId:
type: string
pattern: ^[0-9]+$
companyId:
type: string
pattern: ^[0-9]+$
companyCode:
type: string
pattern: ^[0-9]+$
siteCode:
type: string
pattern: ^[0-9]+$
oem:
type: string
pattern: ^[0-9]+$
readerId:
type:
- number
- 'null'
readerName:
type: string
userId:
type:
- number
- 'null'
userFirstName:
type:
- string
- 'null'
userMiddleName:
type:
- string
- 'null'
userLastName:
type:
- string
- 'null'
userName:
type:
- string
- 'null'
userEmail:
type: string
userOrgId:
type:
- number
- 'null'
userOrgName:
type:
- string
- 'null'
userExternalId:
type:
- string
- 'null'
userIdpName:
type:
- string
- 'null'
required:
- time
- sourceName
meta:
type: object
properties:
accessToken:
type:
- object
- 'null'
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
type:
- object
- 'null'
properties:
isSiteSpecific:
type: boolean
siteIds:
type:
- array
- 'null'
items:
type: integer
siteIdsByScope:
type:
- object
- 'null'
properties:
string:
type:
- array
- 'null'
items:
type: integer
x-op-scopes:
- o{params.orgId}-dash:w
- o{params.orgId}-dash:r
- o{params.orgId}-dashActivity:w
- o{params.orgId}-dashActivity:r
- o{params.orgId}-rpt:w
- o{params.orgId}-rpt:r
- o{params.orgId}-rptGeneral:w
- o{params.orgId}-rptGeneral:r
- o:w
- o:r
- s-o:w
- s-o:r
/orgs/{orgId}/reports/auditLogs/ui:
get:
summary: Search/filter/return audit logs for UI
operationId: getAuditLogsUi
description: 'Returns audit log UI events for the `timestamp` specified date range. Default search time span is 1 hour ago to now.<br/><br/>__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-dash:w,o{params.orgId}-dash:r,o{params.orgId}-rpt:w,o{params.orgId}-rpt:r,o{params.orgId}-portalAudit:w,o{params.orgId}-portalAudit:r,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: getAuditLogsUi'
parameters:
- name: x-op-debug
in: header
schema:
type: string
default: ''
pattern: ^((log-all)(,|$))*$
- name: orgId
in: path
required: true
schema:
type: integer
- name: limit
in: query
schema:
type: integer
default: 10000
maximum: 10000
minimum: 1
- name: offset
in: query
schema:
type: integer
default: 0
minimum: 0
- name: sort
in: query
schema:
type: string
default: timestamp
pattern: ^[a-zA-Z0-9.]+(,\s*[a-zA-Z0-9.]+)*$
- name: order
in: query
schema:
type: string
default: desc
pattern: ^(asc|desc)+(,\s*(asc|desc)+)*$
- name: filter
in: query
schema:
type: string
- name: options
in: query
schema:
type: string
default: ''
maxLength: 512
pattern: ^((searchId:[a-zA-Z0-9_-]+)(,|$))*$
tags:
- orgs/reports
security:
- jwt: []
responses:
'200':
description: Successful
content:
application/json:
schema:
type: object
properties:
totalCount:
type: integer
filteredCount:
type: integer
cursors:
type: object
properties:
nextCursor:
type:
- integer
- 'null'
x-alternatives:
- type:
- integer
- 'null'
- type:
- string
- 'null'
pattern: ^[a-zA-Z0-9,@._~-]+$
hasNextPage:
type: boolean
data:
type: array
items:
type: object
meta:
type: object
properties:
accessToken:
type:
- object
- 'null'
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
type:
- object
- 'null'
properties:
isSiteSpecific:
type: boolean
siteIds:
type:
- array
- 'null'
items:
type: integer
siteIdsByScope:
type:
- object
- 'null'
properties:
string:
type:
- array
- 'null'
items:
type: integer
x-op-scopes:
- o{params.orgId}-dash:w
- o{params.orgId}-dash:r
- o{params.orgId}-rpt:w
- o{params.orgId}-rpt:r
- o{params.orgId}-portalAudit:w
- o{params.orgId}-portalAudit:r
- o:w
- o:r
- s-o:w
- s-o:r
/orgs/{orgId}/reports/presence/buckets:
get:
summary: Get presence bucket reports
operationId: getPresenceBucketsReport
description: '__JWT is required for this endpoint with at least one of
# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openpath/refs/heads/main/openapi/openpath-orgs-reports-api-openapi.yml