Download OpenAPI specification:Download
Entrosity Edge portal REST API: physical access control with TRAcK
ACCESS controllers, RFID readers and cards. This file is the source of
truth for the backend server interfaces (oapi-codegen), request
validation, and the frontend types (openapi-typescript). Run make gen
after editing.
Authentication: Authorization: Bearer <product token>: users sign in
on Entrosity Hub, which issues five-minute product tokens for Edge
(POST /api/platform/v1/auth/product-token {"product":"edge"}, with the
Hub's session cookie). Users, tenants (the Hub's organizations) and
roles are managed on the Hub; Edge keeps a copy.
Every route's access rule (public, authenticated, global admin, tenant
permission) is declared in internal/http/portal/access.go and enforced
before the handler runs.
Returns a token valid for 60 seconds that opens
GET /tenants/{tenantID}/stream?sse_token= for the given tenant and
the caller's session. Access to the tenant is checked when the
stream opens. Keeps the access token out of URLs.
| tenant_id required | string <uuid> |
{- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0"
}{- "token": "string",
- "expires_in": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "display_name": "string",
- "status": "active",
- "is_global_admin": true,
- "memberships": [
- {
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "tenant_name": "string",
- "tenant_status": "active",
- "role": "tenant_admin"
}
], - "created_at": "2019-08-24T14:15:22Z"
}| page | integer [ 1 .. 100000 ] Default: 1 |
| page_size | integer [ 1 .. 200 ] Default: 50 |
| q | string <= 200 characters |
| status | string (TenantStatus) Enum: "active" "suspended" |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "status": "active",
- "settings": {
- "default_timezone": "string",
- "retention": {
- "job_days": 7,
- "audit_days": 30
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "page": 0,
- "page_size": 0,
- "total": 0
}{- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "display_name": "string",
- "role": "global_admin",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "status": "active",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| page | integer [ 1 .. 100000 ] Default: 1 |
| page_size | integer [ 1 .. 200 ] Default: 50 |
| tenant_id | string <uuid> |
| actor_user_id | string <uuid> |
| action | string <= 100 characters |
| resource_type | string <= 100 characters |
| from | string <date-time> |
| to | string <date-time> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ts": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "actor_user_id": "d6ed4497-4325-4995-9f49-e288b7192e46",
- "actor_email": "string",
- "action": "string",
- "resource_type": "string",
- "resource_id": "string",
- "before": { },
- "after": { },
- "ip": "string",
- "request_id": "string"
}
], - "page": 0,
- "page_size": 0,
- "total": 0
}Releases are published by CI with POST /api/v1/admin/connector-releases?version=&channel=¬es=
(Authorization: Bearer <EDGE_RELEASE_TOKEN>, the MSI as an
application/octet-stream body of at most 64 MiB). That endpoint is
not part of this portal contract; see docs/operations/edge.md (Connector releases).
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "version": "string",
- "channel": "stable",
- "sha256": "string",
- "size_bytes": 0,
- "signature": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "signing_enabled": true,
- "public_key": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "status": "active",
- "settings": {
- "default_timezone": "string",
- "retention": {
- "job_days": 7,
- "audit_days": 30
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
object (TenantSettings) | |||||
| |||||
{- "settings": {
- "default_timezone": "string",
- "retention": {
- "job_days": 7,
- "audit_days": 30
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "status": "active",
- "settings": {
- "default_timezone": "string",
- "retention": {
- "job_days": 7,
- "audit_days": 30
}
}, - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
{- "connectors_total": 0,
- "connectors_online": 0,
- "controllers_total": 0,
- "controllers_online": 0,
- "controllers_pending": 0,
- "controllers_failed": 0,
- "doors_total": 0,
- "cardholders_active": 0,
- "cards_active": 0,
- "groups_total": 0,
- "sites_total": 0,
- "events_today": 0,
- "granted_today": 0,
- "denied_today": 0,
- "hourly": [
- {
- "hour": "2019-08-24T14:15:22Z",
- "granted": 0,
- "denied": 0
}
]
}| tenantID required | string <uuid> |
{- "users": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "display_name": "string",
- "role": "global_admin",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "status": "active",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "name": "string",
- "description": "string",
- "timezone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| name required | string [ 1 .. 200 ] characters |
| description | string <= 2000 characters |
| timezone | string [ 1 .. 64 ] characters |
{- "name": "string",
- "description": "string",
- "timezone": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "name": "string",
- "description": "string",
- "timezone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| siteID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "name": "string",
- "description": "string",
- "timezone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| siteID required | string <uuid> |
| name | string [ 1 .. 200 ] characters |
| description | string <= 2000 characters |
| timezone | string [ 1 .. 64 ] characters |
{- "name": "string",
- "description": "string",
- "timezone": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "name": "string",
- "description": "string",
- "timezone": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| siteID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
| page | integer [ 1 .. 100000 ] Default: 1 |
| page_size | integer [ 1 .. 200 ] Default: 50 |
| actor_user_id | string <uuid> |
| action | string <= 100 characters |
| resource_type | string <= 100 characters |
| from | string <date-time> |
| to | string <date-time> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ts": "2019-08-24T14:15:22Z",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "actor_user_id": "d6ed4497-4325-4995-9f49-e288b7192e46",
- "actor_email": "string",
- "action": "string",
- "resource_type": "string",
- "resource_id": "string",
- "before": { },
- "after": { },
- "ip": "string",
- "request_id": "string"
}
], - "page": 0,
- "page_size": 0,
- "total": 0
}| tenantID required | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "label": "string",
- "max_uses": 0,
- "uses": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "revoked_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_by_email": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "status": "active"
}
]
}| tenantID required | string <uuid> |
| label | string <= 200 characters |
| site_id | string <uuid> |
| expires_at | string <date-time> |
| max_uses | integer [ 1 .. 100000 ] |
{- "label": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "expires_at": "2019-08-24T14:15:22Z",
- "max_uses": 1
}{- "token": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "label": "string",
- "max_uses": 0,
- "uses": 0,
- "expires_at": "2019-08-24T14:15:22Z",
- "revoked_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_by_email": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "status": "active"
}, - "secret": "string",
- "install_command": "string",
- "cli_command": "string",
- "download_url": "string"
}| tenantID required | string <uuid> |
| tokenID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}Global admins confirm with their own password: they send
step_up_token, which Entrosity Hub issues for the password
(POST /api/platform/v1/auth/step-up, product edge).
| tenantID required | string <uuid> |
| tokenID required | string <uuid> |
| step_up_token required | string [ 1 .. 4096 ] characters |
{- "step_up_token": "string"
}{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "name": "string",
- "hostname": "string",
- "domain": "string",
- "version": "string",
- "capabilities": [
- "string"
], - "status": "online",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "controller_count": 0,
- "update_channel": "stable",
- "update_version": "string",
- "update_offered_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| connectorID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "name": "string",
- "hostname": "string",
- "domain": "string",
- "version": "string",
- "capabilities": [
- "string"
], - "status": "online",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "controller_count": 0,
- "update_channel": "stable",
- "update_version": "string",
- "update_offered_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| connectorID required | string <uuid> |
| name | string <= 200 characters |
| site_id | string <uuid> |
| clear_site | boolean Remove the connector from its site. |
| update_channel | string (UpdateChannel) Enum: "stable" "beta" Which releases the connector updates to (beta also receives stable releases). |
{- "name": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "clear_site": true,
- "update_channel": "stable"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "name": "string",
- "hostname": "string",
- "domain": "string",
- "version": "string",
- "capabilities": [
- "string"
], - "status": "online",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "controller_count": 0,
- "update_channel": "stable",
- "update_version": "string",
- "update_offered_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| connectorID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}Creates an edge.discover job; poll GET /tenants/{tenantID}/jobs/{jobID}
(or watch job.update) for its result, a DiscoverResult.
409 connector_offline when the connector is not connected.
| tenantID required | string <uuid> |
| connectorID required | string <uuid> |
| driver required | string (Driver) Enum: "simulator" "trackbase002" simulator is a software controller for trials and tests. |
| transport | string (Transport) Enum: "tcp" "rs485" |
| addresses | Array of strings <= 256 items [ items <= 255 characters ] host:port addresses to probe (TrackBase); empty for the simulator. |
{- "driver": "simulator",
- "transport": "tcp",
- "addresses": [
- "string"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "type": "string",
- "status": "created",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "progress_pct": 0,
- "progress_message": "string",
- "error_code": "string",
- "error": "string",
- "result": { }
}| tenantID required | string <uuid> |
| jobID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "type": "string",
- "status": "created",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "progress_pct": 0,
- "progress_message": "string",
- "error_code": "string",
- "error": "string",
- "result": { }
}| tenantID required | string <uuid> |
| connector_id | string <uuid> |
| site_id | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "connector_name": "string",
- "connector_status": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "name": "string",
- "driver": "simulator",
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "door_mode": "one_bidirectional",
- "model": "string",
- "serial": "string",
- "firmware": "string",
- "status": "unknown",
- "status_error": "string",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "desired_version": 0,
- "applied_version": 0,
- "sync_status": "in_sync",
- "sync_error_code": "string",
- "sync_error": "string",
- "synced_at": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "pin_set": true,
- "enabled": true,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "capacity": 0
}| tenantID required | string <uuid> |
| connector_id required | string <uuid> |
| site_id | string <uuid> |
| name required | string [ 1 .. 200 ] characters |
| driver required | string (Driver) Enum: "simulator" "trackbase002" simulator is a software controller for trials and tests. |
| transport | string (Transport) Enum: "tcp" "rs485" |
| address required | string [ 1 .. 255 ] characters host:port (tcp) |
| unit_id | integer [ 0 .. 31 ] RS-485 bus address (1-31). |
| door_mode required | string (DoorMode) Enum: "one_bidirectional" "two_unidirectional" |
| model | string <= 100 characters |
| serial | string <= 100 characters |
| firmware | string <= 100 characters |
| pin | integer <int64> (ControllerPIN) [ 1 .. 4294967294 ] The controller's PIN (TrackBase002 only; 422 for other drivers). Write-only. |
{- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "name": "string",
- "driver": "simulator",
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "door_mode": "one_bidirectional",
- "model": "string",
- "serial": "string",
- "firmware": "string",
- "pin": 1
}{- "controller": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "connector_name": "string",
- "connector_status": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "name": "string",
- "driver": "simulator",
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "door_mode": "one_bidirectional",
- "model": "string",
- "serial": "string",
- "firmware": "string",
- "status": "unknown",
- "status_error": "string",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "desired_version": 0,
- "applied_version": 0,
- "sync_status": "in_sync",
- "sync_error_code": "string",
- "sync_error": "string",
- "synced_at": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "pin_set": true,
- "enabled": true,
- "created_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "controller_status": "unknown",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "index": 0,
- "name": "string",
- "lock_relay": 0,
- "open_pulse_ms": 0,
- "held_open_seconds": 0,
- "is_open": true,
- "is_locked": true,
- "state_at": "2019-08-24T14:15:22Z"
}
], - "readers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "channel": "wiegand1",
- "direction": "in",
- "name": "string",
- "enabled": true
}
]
}| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
{- "controller": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "connector_name": "string",
- "connector_status": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "name": "string",
- "driver": "simulator",
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "door_mode": "one_bidirectional",
- "model": "string",
- "serial": "string",
- "firmware": "string",
- "status": "unknown",
- "status_error": "string",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "desired_version": 0,
- "applied_version": 0,
- "sync_status": "in_sync",
- "sync_error_code": "string",
- "sync_error": "string",
- "synced_at": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "pin_set": true,
- "enabled": true,
- "created_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "controller_status": "unknown",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "index": 0,
- "name": "string",
- "lock_relay": 0,
- "open_pulse_ms": 0,
- "held_open_seconds": 0,
- "is_open": true,
- "is_locked": true,
- "state_at": "2019-08-24T14:15:22Z"
}
], - "readers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "channel": "wiegand1",
- "direction": "in",
- "name": "string",
- "enabled": true
}
]
}Only the fields sent change. A new door_mode rebuilds the doors and readers as creating the controller with that mode does: door 1 (with its id, name and timing) always stays, door 2 is added or removed, and the readers are wired to the new layout. 409 door_in_use (naming the access groups) when door 2 would be removed while access groups use it.
enabled false disables the controller (open configuration jobs are cancelled, the connector gets edge.controller.remove); enabled true enables it and forces a resync. A disabled controller can still be edited (nothing is sent until it is enabled); opening its doors, testing it and resyncing it are refused with 409 controller_disabled.
| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
| name | string [ 1 .. 200 ] characters |
| site_id | string <uuid> |
| clear_site | boolean Remove the controller from its site. |
| transport | string (Transport) Enum: "tcp" "rs485" |
| address | string [ 1 .. 255 ] characters |
| unit_id | integer [ 0 .. 31 ] |
| pin | integer <int64> (ControllerPIN) [ 1 .. 4294967294 ] The controller's PIN (TrackBase002 only; 422 for other drivers). Write-only. |
| clear_pin | boolean Remove the controller's PIN (not together with pin). |
| door_mode | string (DoorMode) Enum: "one_bidirectional" "two_unidirectional" |
| enabled | boolean false disables the controller: its pending configurations are cancelled and its connector is told to stop driving it (edge.controller.remove). true enables it again and forces a resync. |
{- "name": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "clear_site": true,
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "pin": 1,
- "clear_pin": true,
- "door_mode": "one_bidirectional",
- "enabled": true
}{- "controller": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "connector_name": "string",
- "connector_status": "string",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "name": "string",
- "driver": "simulator",
- "transport": "tcp",
- "address": "string",
- "unit_id": 0,
- "door_mode": "one_bidirectional",
- "model": "string",
- "serial": "string",
- "firmware": "string",
- "status": "unknown",
- "status_error": "string",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "desired_version": 0,
- "applied_version": 0,
- "sync_status": "in_sync",
- "sync_error_code": "string",
- "sync_error": "string",
- "synced_at": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "pin_set": true,
- "enabled": true,
- "created_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "controller_status": "unknown",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "index": 0,
- "name": "string",
- "lock_relay": 0,
- "open_pulse_ms": 0,
- "held_open_seconds": 0,
- "is_open": true,
- "is_locked": true,
- "state_at": "2019-08-24T14:15:22Z"
}
], - "readers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "channel": "wiegand1",
- "direction": "in",
- "name": "string",
- "enabled": true
}
]
}| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}409 controller_disabled when the controller is disabled.
| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}409 controller_disabled when the controller is disabled.
| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "type": "string",
- "status": "created",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "progress_pct": 0,
- "progress_message": "string",
- "error_code": "string",
- "error": "string",
- "result": { }
}| tenantID required | string <uuid> |
| controllerID required | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "type": "string",
- "status": "created",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "progress_pct": 0,
- "progress_message": "string",
- "error_code": "string",
- "error": "string",
- "result": { }
}
]
}| tenantID required | string <uuid> |
| readerID required | string <uuid> |
| door_id | string <uuid> |
| direction | string (Direction) Enum: "in" "out" |
| name | string <= 200 characters |
| enabled | boolean |
{- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "direction": "in",
- "name": "string",
- "enabled": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "channel": "wiegand1",
- "direction": "in",
- "name": "string",
- "enabled": true
}| tenantID required | string <uuid> |
| site_id | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "controller_status": "unknown",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "index": 0,
- "name": "string",
- "lock_relay": 0,
- "open_pulse_ms": 0,
- "held_open_seconds": 0,
- "is_open": true,
- "is_locked": true,
- "state_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| doorID required | string <uuid> |
| name | string [ 1 .. 200 ] characters |
| lock_relay | integer [ 1 .. 4 ] |
| open_pulse_ms | integer [ 100 .. 60000 ] |
| held_open_seconds | integer [ 0 .. 3600 ] |
{- "name": "string",
- "lock_relay": 1,
- "open_pulse_ms": 100,
- "held_open_seconds": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "controller_status": "unknown",
- "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811",
- "site_name": "string",
- "index": 0,
- "name": "string",
- "lock_relay": 0,
- "open_pulse_ms": 0,
- "held_open_seconds": 0,
- "is_open": true,
- "is_locked": true,
- "state_at": "2019-08-24T14:15:22Z"
}409 connector_offline when the controller's connector is not connected; 409 controller_disabled when the door's controller is disabled.
| tenantID required | string <uuid> |
| doorID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "connector_id": "9389ba6f-3696-4571-84d4-34d588c4b109",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "type": "string",
- "status": "created",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "created_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "finished_at": "2019-08-24T14:15:22Z",
- "progress_pct": 0,
- "progress_message": "string",
- "error_code": "string",
- "error": "string",
- "result": { }
}| tenantID required | string <uuid> |
| page | integer [ 1 .. 100000 ] Default: 1 |
| page_size | integer [ 1 .. 200 ] Default: 50 |
| q | string <= 200 characters |
| status | string (CardholderStatus) Enum: "active" "suspended" |
| group_id | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "page": 0,
- "page_size": 0,
- "total": 0
}| tenantID required | string <uuid> |
| first_name required | string [ 1 .. 100 ] characters |
| last_name | string <= 100 characters |
string <= 254 characters | |
| phone | string <= 50 characters |
| department | string <= 100 characters |
| external_ref | string <= 100 characters |
| notes | string <= 2000 characters |
| status | string (CardholderStatus) Enum: "active" "suspended" |
| valid_from | string or null <date-time> |
| valid_to | string or null <date-time> |
| group_ids | Array of strings <uuid> <= 200 items [ items <uuid > ] Replaces the cardholder's access groups when present. |
{- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "group_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "cardholder": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "cards": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| cardholderID required | string <uuid> |
{- "cardholder": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "cards": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| cardholderID required | string <uuid> |
| first_name required | string [ 1 .. 100 ] characters |
| last_name | string <= 100 characters |
string <= 254 characters | |
| phone | string <= 50 characters |
| department | string <= 100 characters |
| external_ref | string <= 100 characters |
| notes | string <= 2000 characters |
| status | string (CardholderStatus) Enum: "active" "suspended" |
| valid_from | string or null <date-time> |
| valid_to | string or null <date-time> |
| group_ids | Array of strings <uuid> <= 200 items [ items <uuid > ] Replaces the cardholder's access groups when present. |
{- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "group_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "cardholder": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "cards": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "groups": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| cardholderID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}q matches the facility:number form, the card number, the 10-digit number printed on Wiegand 26 cards ((facility_code << 16) | card_number, with or without its leading zeros), the iButton id, the label and the cardholder's name.
| tenantID required | string <uuid> |
| page | integer [ 1 .. 100000 ] Default: 1 |
| page_size | integer [ 1 .. 200 ] Default: 50 |
| q | string <= 200 characters |
| cardholder_id | string <uuid> |
| unassigned | boolean Only cards without a cardholder (the pool). |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "page": 0,
- "page_size": 0,
- "total": 0
}| tenantID required | string <uuid> |
| kind required | string (CredentialKind) Enum: "wiegand26" "ibutton" |
| facility_code | integer [ 0 .. 255 ] |
| card_number | integer [ 0 .. 65535 ] |
| ibutton_id | string^[0-9A-Fa-f]{2,16}$ |
| cardholder_id | string <uuid> |
| status | string (CardStatus) Enum: "active" "suspended" "lost" |
| label | string <= 100 characters |
{- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "status": "active",
- "label": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| cardID required | string <uuid> |
| cardholder_id | string <uuid> Assign the card to this cardholder. |
| unassign | boolean Return the card to the pool of unassigned cards. |
| status | string (CardStatus) Enum: "active" "suspended" "lost" |
| label | string <= 100 characters |
{- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "unassign": true,
- "status": "active",
- "label": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "kind": "wiegand26",
- "facility_code": 0,
- "card_number": 0,
- "ibutton_id": "string",
- "display": "string",
- "status": "active",
- "label": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| cardID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
], - "usage_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| name required | string [ 1 .. 100 ] characters |
| description | string <= 500 characters |
required | Array of objects (Interval) <= 64 items |
{- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
], - "usage_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| scheduleID required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
], - "usage_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| scheduleID required | string <uuid> |
| name required | string [ 1 .. 100 ] characters |
| description | string <= 500 characters |
required | Array of objects (Interval) <= 64 items |
{- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "intervals": [
- {
- "day": 0,
- "start": 0,
- "end": 1
}
], - "usage_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| tenantID required | string <uuid> |
| scheduleID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
| date required | string <date> |
| name required | string [ 1 .. 100 ] characters |
{- "date": "2019-08-24",
- "name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "date": "2019-08-24",
- "name": "string"
}| tenantID required | string <uuid> |
| holidayID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| name required | string [ 1 .. 100 ] characters |
| description | string <= 500 characters |
{- "name": "string",
- "description": "string"
}{- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "controller_name": "string",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58",
- "schedule_name": "string"
}
], - "members": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| groupID required | string <uuid> |
{- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "controller_name": "string",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58",
- "schedule_name": "string"
}
], - "members": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| groupID required | string <uuid> |
| name required | string [ 1 .. 100 ] characters |
| description | string <= 500 characters |
{- "name": "string",
- "description": "string"
}{- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "controller_name": "string",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58",
- "schedule_name": "string"
}
], - "members": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| groupID required | string <uuid> |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
| groupID required | string <uuid> |
required | Array of objects <= 500 items | ||||
Array (<= 500 items)
| |||||
{- "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58"
}
]
}{- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "controller_name": "string",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58",
- "schedule_name": "string"
}
], - "members": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| tenantID required | string <uuid> |
| groupID required | string <uuid> |
| add | Array of strings <uuid> <= 1000 items [ items <uuid > ] |
| remove | Array of strings <uuid> <= 1000 items [ items <uuid > ] |
{- "add": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "remove": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "group": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "description": "string",
- "member_count": 0,
- "door_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "doors": [
- {
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "controller_name": "string",
- "schedule_id": "8929bb67-0da1-406c-99d2-5447376a4f58",
- "schedule_name": "string"
}
], - "members": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "phone": "string",
- "department": "string",
- "external_ref": "string",
- "notes": "string",
- "status": "active",
- "valid_from": "2019-08-24T14:15:22Z",
- "valid_to": "2019-08-24T14:15:22Z",
- "card_count": 0,
- "group_names": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}text/event-stream of the tenant's live updates: access.events
(new access log entries, an array), controller.status,
controller.sync, door.state, connector.status and
job.update. Authenticate with a bearer token or, for EventSource,
?sse_token= from POST /auth/sse-token.
| tenantID required | string <uuid> |
| sse_token | string <= 4096 characters |
{- "type": "about:blank",
- "title": "string",
- "status": 0,
- "detail": "string",
- "code": "string",
- "instance": "string",
- "request_id": "string",
- "fields": {
- "property1": "string",
- "property2": "string"
}
}| tenantID required | string <uuid> |
| before_at | string <date-time> Cursor from the previous page (next_before_at). |
| before_id | string <uuid> |
| from | string <date-time> |
| to | string <date-time> |
| door_id | string <uuid> |
| controller_id | string <uuid> |
| cardholder_id | string <uuid> |
| type | Array of strings <= 20 items [ items <= 64 characters ] Event types (repeat the parameter for several). |
| limit | integer [ 1 .. 500 ] Default: 100 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "occurred_at": "2019-08-24T14:15:22Z",
- "type": "string",
- "reason": "string",
- "controller_id": "d9594ac9-2986-4a07-9d98-c9104109e8c5",
- "controller_name": "string",
- "door_id": "64c2abcc-dbb1-4339-b149-a6e1d873bae5",
- "door_name": "string",
- "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304",
- "cardholder_id": "b41a5553-f9d1-4565-a52e-86ef53ff44f9",
- "cardholder_name": "string",
- "credential": "string",
- "direction": "string",
- "detail": "string",
- "actor_email": "string"
}
], - "has_more": true,
- "next_before_at": "2019-08-24T14:15:22Z",
- "next_before_id": "0ce7fc60-5733-4ae4-967b-4beb905a3fd7"
}