OpenAPI Specification
swagger: '2.0'
info:
title: Openpath API Documentation auth orgs/zones API
version: 1.0.0
description: Authentication and Login
host: api.openpath.com
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: orgs/zones
description: Zones
paths:
/orgs/{orgId}/zones:
get:
summary: List all owned or shared zones
operationId: listZones
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-user:w,o{params.orgId}-user:r,o{params.orgId}-site:w,o{params.orgId}-site:r,o{params.orgId}-siteGeneral:w,o{params.orgId}-siteGeneral:r,o{params.orgId}-ldp:w,o{params.orgId}-ldp:r,o{params.orgId}-dash:w,o{params.orgId}-dash:r,o{params.orgId}-dashActivity:w,o{params.orgId}-dashActivity:r,o{params.orgId}-dashCust:w,o{params.orgId}-dashCust:r,o{params.orgId}-musterReport:r,o{params.orgId}-musterReport:w,o{params.orgId}-occupancyReport:r,o{params.orgId}-occupancyReport:w,o{params.orgId}-rpt:r,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: listZones'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
minimum: 1
maximum: 1000
name: limit
in: query
- type: integer
default: 0
minimum: 0
name: offset
in: query
- type: string
default: name
pattern: ^[a-zA-Z0-9.]+(,\s*[a-zA-Z0-9.]+)*$
name: sort
in: query
- type: string
default: asc
pattern: ^(asc|desc)+(,\s*(asc|desc)+)*$
name: order
in: query
- type: string
name: q
in: query
- type: string
name: filter
in: query
- type: string
name: preFilter
in: query
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'200':
schema:
type: object
properties:
totalCount:
type: integer
filteredCount:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: integer
opal:
type: string
name:
type: string
description:
type: string
x-nullable: true
org:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
site:
x-nullable: true
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
createdAt:
type: string
format: date
updatedAt:
type: string
format: date
apbResetIcalText:
type: string
x-nullable: true
apbExpirationSeconds:
type: integer
x-nullable: true
apbUseContactSensor:
type: boolean
apbAllowSharedOrgReset:
type: boolean
zoneShares:
type: array
items:
type: object
properties:
orgId:
type: integer
entries:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
acu:
type: object
properties:
id:
type: integer
required:
- id
wirelessLock:
x-nullable: true
type: object
properties:
id:
type: number
noTourLockId:
type: integer
minimum: 0
maximum: 65534
x-nullable: true
isOffline:
type: boolean
wirelessLockDbEntries:
type: array
items:
type: object
properties:
credentialNumberHash:
type: string
required:
- id
required:
- id
apbAreas:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
entryCount:
type: integer
offlineEntryCount:
type: integer
userCount:
type: integer
groupCount:
type: integer
required:
- id
meta:
type: object
properties:
accessToken:
x-nullable: true
type: object
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
x-nullable: true
type: object
properties:
isSiteSpecific:
type: boolean
siteIds:
x-nullable: true
type: array
items:
type: integer
siteIdsByScope:
type: object
properties:
string:
x-nullable: true
type: array
items:
type: integer
x-nullable: true
description: Successful
x-op-scopes:
- o{params.orgId}-user:w
- o{params.orgId}-user:r
- o{params.orgId}-site:w
- o{params.orgId}-site:r
- o{params.orgId}-siteGeneral:w
- o{params.orgId}-siteGeneral:r
- o{params.orgId}-ldp:w
- o{params.orgId}-ldp:r
- o{params.orgId}-dash:w
- o{params.orgId}-dash:r
- o{params.orgId}-dashActivity:w
- o{params.orgId}-dashActivity:r
- o{params.orgId}-dashCust:w
- o{params.orgId}-dashCust:r
- o{params.orgId}-musterReport:r
- o{params.orgId}-musterReport:w
- o{params.orgId}-occupancyReport:r
- o{params.orgId}-occupancyReport:w
- o{params.orgId}-rpt:r
- o:w
- o:r
- s-o:w
- s-o:r
post:
summary: Create a zone
operationId: createZone
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-site:w,o{params.orgId}-siteGeneral:w,o{params.orgId}-admin:w,o{params.orgId}-quickStart:w,o:w,s-o:w<br/><br/>__Endpoint name__: createZone'
parameters:
- type: integer
name: orgId
in: path
required: true
- in: body
name: body
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
x-convert:
trim: true
siteId:
type: integer
description:
type: string
x-nullable: true
apbResetIcalText:
type: string
x-nullable: true
apbExpirationSeconds:
type: integer
x-nullable: true
apbUseContactSensor:
type: boolean
default: true
apbAllowSharedOrgReset:
type: boolean
default: false
required:
- name
- siteId
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'201':
schema:
type: object
properties:
data:
type: object
properties:
id:
type: integer
opal:
type: string
name:
type: string
description:
type: string
x-nullable: true
org:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
site:
x-nullable: true
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
createdAt:
type: string
format: date
updatedAt:
type: string
format: date
apbResetIcalText:
type: string
x-nullable: true
apbExpirationSeconds:
type: integer
x-nullable: true
apbUseContactSensor:
type: boolean
apbAllowSharedOrgReset:
type: boolean
zoneShares:
type: array
items:
type: object
properties:
orgId:
type: integer
entries:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
acu:
type: object
properties:
id:
type: integer
required:
- id
wirelessLock:
x-nullable: true
type: object
properties:
id:
type: number
noTourLockId:
type: integer
minimum: 0
maximum: 65534
x-nullable: true
isOffline:
type: boolean
wirelessLockDbEntries:
type: array
items:
type: object
properties:
credentialNumberHash:
type: string
required:
- id
required:
- id
apbAreas:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
entryCount:
type: integer
offlineEntryCount:
type: integer
userCount:
type: integer
groupCount:
type: integer
required:
- id
meta:
type: object
properties:
accessToken:
x-nullable: true
type: object
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
x-nullable: true
type: object
properties:
isSiteSpecific:
type: boolean
siteIds:
x-nullable: true
type: array
items:
type: integer
siteIdsByScope:
type: object
properties:
string:
x-nullable: true
type: array
items:
type: integer
x-nullable: true
description: Created
x-op-scopes:
- o{params.orgId}-site:w
- o{params.orgId}-siteGeneral:w
- o{params.orgId}-admin:w
- o{params.orgId}-quickStart:w
- o:w
- s-o:w
/orgs/{orgId}/zones/{zoneId}:
get:
summary: Describe an owned or shared zone
operationId: describeZone
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-user:w,o{params.orgId}-user:r,o{params.orgId}-site:w,o{params.orgId}-site:r,o{params.orgId}-siteGeneral:w,o{params.orgId}-siteGeneral:r,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: describeZone'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
name: zoneId
in: path
required: true
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'200':
schema:
type: object
properties:
data:
type: object
properties:
id:
type: integer
opal:
type: string
name:
type: string
description:
type: string
x-nullable: true
org:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
site:
x-nullable: true
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
createdAt:
type: string
format: date
updatedAt:
type: string
format: date
apbResetIcalText:
type: string
x-nullable: true
apbExpirationSeconds:
type: integer
x-nullable: true
apbUseContactSensor:
type: boolean
apbAllowSharedOrgReset:
type: boolean
zoneShares:
type: array
items:
type: object
properties:
orgId:
type: integer
entries:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
acu:
type: object
properties:
id:
type: integer
required:
- id
wirelessLock:
x-nullable: true
type: object
properties:
id:
type: number
noTourLockId:
type: integer
minimum: 0
maximum: 65534
x-nullable: true
isOffline:
type: boolean
wirelessLockDbEntries:
type: array
items:
type: object
properties:
credentialNumberHash:
type: string
required:
- id
required:
- id
apbAreas:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
required:
- id
entryCount:
type: integer
offlineEntryCount:
type: integer
userCount:
type: integer
groupCount:
type: integer
required:
- id
meta:
type: object
properties:
accessToken:
x-nullable: true
type: object
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
x-nullable: true
type: object
properties:
isSiteSpecific:
type: boolean
siteIds:
x-nullable: true
type: array
items:
type: integer
siteIdsByScope:
type: object
properties:
string:
x-nullable: true
type: array
items:
type: integer
x-nullable: true
description: Successful
x-op-scopes:
- o{params.orgId}-user:w
- o{params.orgId}-user:r
- o{params.orgId}-site:w
- o{params.orgId}-site:r
- o{params.orgId}-siteGeneral:w
- o{params.orgId}-siteGeneral:r
- o:w
- o:r
- s-o:w
- s-o:r
delete:
summary: Delete a zone
operationId: deleteZone
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-site:w,o{params.orgId}-site:w,o{params.orgId}-siteGeneral:w,o{params.orgId}-siteGeneral:w,o:w,s-o:w<br/><br/>__Endpoint name__: deleteZone'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
name: zoneId
in: path
required: true
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'204':
description: No Content
x-op-scopes:
- o{params.orgId}-site:w
- o{params.orgId}-site:w
- o{params.orgId}-siteGeneral:w
- o{params.orgId}-siteGeneral:w
- o:w
- s-o:w
patch:
summary: Update a zone
operationId: updateZone
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-site:w,o{params.orgId}-siteGeneral:w,o:w,s-o:w<br/><br/>__Endpoint name__: updateZone'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
name: zoneId
in: path
required: true
- in: body
name: body
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
x-convert:
trim: true
description:
type: string
x-nullable: true
siteId:
type: integer
apbResetIcalText:
type: string
x-nullable: true
apbExpirationSeconds:
type: integer
x-nullable: true
apbUseContactSensor:
type: boolean
apbAllowSharedOrgReset:
type: boolean
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'204':
description: No Content
x-op-scopes:
- o{params.orgId}-site:w
- o{params.orgId}-siteGeneral:w
- o:w
- s-o:w
/orgs/{orgId}/zones/{zoneId}/apbAreas:
get:
summary: List all zone anti-passback areas
operationId: listZoneApbAreas
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-site:w,o{params.orgId}-site:r,o{params.orgId}-siteGeneral:w,o{params.orgId}-siteGeneral:r,o{params.orgId}-dash:w,o{params.orgId}-dash:r,o{params.orgId}-dashActivity:w,o{params.orgId}-dashActivity:r,o:w,o:r,s-o:w,s-o:r<br/><br/>__Endpoint name__: listZoneApbAreas'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
name: zoneId
in: path
required: true
- type: integer
minimum: 1
maximum: 1000
name: limit
in: query
- type: integer
default: 0
minimum: 0
name: offset
in: query
- type: string
default: name
pattern: ^[a-zA-Z0-9.]+(,\s*[a-zA-Z0-9.]+)*$
name: sort
in: query
- type: string
default: asc
pattern: ^(asc|desc)+(,\s*(asc|desc)+)*$
name: order
in: query
- type: string
name: q
in: query
- type: string
name: filter
in: query
- type: string
name: preFilter
in: query
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'200':
schema:
type: object
properties:
totalCount:
type: integer
filteredCount:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: integer
name:
type: string
occupancyLimit:
type: integer
x-nullable: true
occupancyLimitMode:
x-nullable: true
type: string
enum:
- alert
- enforce
createdAt:
type: string
format: date
updatedAt:
type: string
format: date
apbFlows:
type: array
items:
type: object
properties:
id:
type: integer
direction:
type: string
enum:
- inbound
- outbound
mode:
x-nullable: true
type: string
enum:
- alert
- enforce
entries:
type: array
items:
type: object
properties:
id:
type: integer
required:
- id
required:
- id
- direction
required:
- id
meta:
type: object
properties:
accessToken:
x-nullable: true
type: object
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
x-nullable: true
type: object
properties:
isSiteSpecific:
type: boolean
siteIds:
x-nullable: true
type: array
items:
type: integer
siteIdsByScope:
type: object
properties:
string:
x-nullable: true
type: array
items:
type: integer
x-nullable: true
description: Successful
x-op-scopes:
- o{params.orgId}-site:w
- o{params.orgId}-site:r
- o{params.orgId}-siteGeneral:w
- o{params.orgId}-siteGeneral:r
- o{params.orgId}-dash:w
- o{params.orgId}-dash:r
- o{params.orgId}-dashActivity:w
- o{params.orgId}-dashActivity:r
- o:w
- o:r
- s-o:w
- s-o:r
post:
summary: Create a zone anti-passback area
operationId: createZoneApbArea
description: '__JWT is required for this endpoint with at least one of the following scopes__: o{params.orgId}-site:w,o{params.orgId}-siteGeneral:w,o:w,s-o:w<br/><br/>__Endpoint name__: createZoneApbArea'
parameters:
- type: integer
name: orgId
in: path
required: true
- type: integer
name: zoneId
in: path
required: true
- in: body
name: body
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
x-convert:
trim: true
occupancyLimit:
type: integer
minimum: 1
x-nullable: true
occupancyLimitMode:
x-nullable: true
type: string
enum:
- alert
- enforce
apbFlows:
type: array
items:
type: object
properties:
direction:
type: string
enum:
- inbound
- outbound
mode:
x-nullable: true
type: string
default: null
enum:
- alert
- enforce
entryIds:
type: array
items:
type: integer
required:
- direction
required:
- name
consumes:
- application/json
produces:
- application/json
tags:
- orgs/zones
security:
- jwt: []
responses:
'201':
schema:
type: object
properties:
data:
type: object
properties:
id:
type: integer
name:
type: string
occupancyLimit:
type: integer
x-nullable: true
occupancyLimitMode:
x-nullable: true
type: string
enum:
- alert
- enforce
createdAt:
type: string
format: date
updatedAt:
type: string
format: date
apbFlows:
type: array
items:
type: object
properties:
id:
type: integer
direction:
type: string
enum:
- inbound
- outbound
mode:
x-nullable: true
type: string
enum:
- alert
- enforce
entries:
type: array
items:
type: object
properties:
id:
type: integer
required:
- id
required:
- id
- direction
required:
- id
meta:
type: object
properties:
accessToken:
x-nullable: true
type: object
properties:
scopeUpdatedAt:
type: string
format: date
siteSpecificAccess:
x-nullable: true
type: object
properties:
isSiteSpecific:
type: boolean
siteIds:
x-nullable: true
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openpath/refs/heads/main/openapi/openpath-orgs-zones-api-openapi.yml