{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","activeApiName":"CURRENT","versions":[{"id":1475,"versionTagId":"latest","environmentTemplateId":null,"publishedId":15193,"published":true,"publishDate":"2019-05-13T06:49:02.000Z","publisherId":43376,"customColor":"","customDomainId":null,"createdAt":"2019-05-13T06:49:02.000Z","updatedAt":"2021-01-28T17:52:36.000Z","apiName":"CURRENT"},{"id":349277,"versionTagId":"bb49bbc2-6c95-42c0-be65-2bdd85e9f072","environmentTemplateId":null,"publishedId":15193,"published":true,"publishDate":"2021-01-28T09:33:00.000Z","publisherId":43380,"customColor":"","customDomainId":null,"createdAt":"2021-01-28T09:33:00.000Z","updatedAt":"2021-01-28T17:52:36.000Z","apiName":"2.0.0"},{"id":349273,"versionTagId":"3cb3ff2a-783d-4b21-8b96-c46b0226c2eb","environmentTemplateId":null,"publishedId":15193,"published":true,"publishDate":"2021-01-28T09:25:20.000Z","publisherId":43380,"customColor":"","customDomainId":null,"createdAt":"2021-01-28T09:25:20.000Z","updatedAt":"2021-01-28T17:52:36.000Z","apiName":"1.0.0"}],"collection":{"info":{"_postman_id":"ce9fa63d-5058-7ea0-49e0-e487cc3d1521","name":"Genea Access Control API - V2.0.0","description":"## Important Notice\n\n**Note:** Please note that there are a few changes coming for Card API responses. Please integrate as per the new changes if your integration goes live in early Q4 2024 (After October,2024). Here is the document which you can refer to: [Link to Document](https://whimsical.com/card-api-responses-updates-HNWTJZtYzPECmuPgXdN4Ws)\n\n---\n\nWelcome to the official documentation of Genea Access Control API specification. This api documentation will provide you all the necessary information to interact with Genea Access Control - all the way from creating new user to unlocking door!\n\nIf you have any questions or problems please contact support at [acsupport@getgenea.com](https://mailto:acsupport@getgenea.com)\n\n| **Common Variables** | **Description** |\n| --- | --- |\n| api_token | Token-based authentication to allow accessing the APIs. |\n| customer_uuid | Unique ID of your customer portal. |\n| location_uuid | Unique ID of your location portal under the customer portal. |\n| api_url | APIs are accessed from this URL |\n\nA template has been provided that can be used to quickly import the variable names. You will still be responsible for filling in the values and missing variables as needed.\n\n# ER Diagram\n\n<img src=\"https://s3.amazonaws.com/images.sequr.io/genea_access_control_er_diagram.png\">\n\n# Domain Definitions\n\nThe following terms and definitions will help you understand Genea Access Control.\n\n**Customer:** A company that is using Genea Access Control.\n\n**Location:** Work location of the company where Genea Access Control is installed. A customer can have multiple locations.\n\n**User:** A user working at the company's location.\n\n**Controller:** The System Control Processor (SCP) panel, also known as the Intelligent Controller.\n\n**Interface:** The Interface Panels/SIO(s) are a class of devices that provide a direct interface to external field devices such as sensors and card readers.\n\n**Door:** Door validates access requests and it manages and monitors the access point. It has different kinds of the access mode (card, PIN, etc.)\n\n**Control Point:** Control point objects are attached to outputs. Control points provide the application a means to interface  \nto outputs.\n\n**Monitor Point:** A monitor point object processes status changes reported by its attached input based on its property  \nsettings. Monitor points may be \"masked\" to suppress log entries for changes between input active and  \ninactive conditions\n\n**Card:** Physical/Mobile key assigned to a User which can be used to access doors.\n\n**PIN:** Personal Identification Number assigned to a User which can be used to access doors.\n\n**Access Group:** Access group is collection of rules, set on doors for given schedules, this way it defines the rules to when user can access that door.\n\n**Elevator Access Group:** Elevator access group is collection of rules, set on elevators for given schedules, this way it defines the rules to when user can access that elevator.\n\n**Schedule:** Schedules are a fundamental feature for access control and security systems. Schedules are predetermined time blocks that can be used for controlling access and automated operations.\n\n# Authentication\n\nThe Genea API uses API Key to authenticate requests. You can view and manage your Global API Key in the [Genea Portal](https://help.getgenea.com/en/articles/5366419-global-overview-api-keys).\n\nUser API Token: The Genea API uses User API Token to authenticate requests. You can view and manage your User API Token in the [Genea Portal](https://help.getgenea.com/en/articles/2905982-where-can-i-find-my-genea-api-token).\n\nYour API Token carry many privileges, so be sure to keep it secure!\n\nAuthentication to the API is performed via bearer Auth. For example: `--header 'Authorization: Bearer {api_token}'`\n\nAll API requests must be made over [HTTPS](http://en.wikipedia.org/wiki/HTTP_Secure). Calls made over plain HTTP will fail. API requests without authentication will also fail.\n\n# Migration from User API Token to Global API Keys\n\n- With Global API Keys, [Me API](https://apidocs-accesscontrol.getgenea.com/#5afe1fd3-0934-2285-1715-07a93c0d43d8) and [List my locations API](https://apidocs-accesscontrol.getgenea.com/#31ae3d06-b7a9-af15-636f-04480952e6d6) are not supported. Instead you can call Get API Key Detail by API Key API to fetch customer_uuid & related detail.\n    \n\n# Errors\n\nGenea uses traditional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the `2xx` range indicate success. Codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was not provided, invalid details provided, etc.). Codes in the `5xx` range indicate an error with Genea's servers (these are rare).\n\nSome `4xx` errors that could be handled programmatically include an error code that briefly explains the error reported.\n\n| HTTP Status Code Detail |  |\n| --- | --- |\n| 200 - OK | Everything worked as expected. |\n| 400 - Bad Request | The request was unacceptable, often due to validation error. |\n| 403 - Forbidden | Invalid API Key or the API key doesn't have permissions to perform the request. |\n| 404 - Not Found | The requested resource doesn't exist. |\n| 500, 502, 503, 504 - Server Errors | Something went wrong on Genea's end. |\n\n# Pagination\n\nMost API resources have support for bulk fetches via \"List\" API methods. For instance, you can List users, List custom attribute, and List doors. These list API methods share a common structure, taking at least these two parameters: page and page_size.\n\nGenea utilizes Offset based pagination via the `page` and `page_size` parameters. Both parameters takes integer value. The `page` parameter specifies page number for which we want to fetch objects. The `page_size` parameter specifies number of objects to be returned. Both these parameters `page` and `page_size` are required in order to apply pagination.\n\n## Mandatory Parameters\n\n---\n\n**page**  \nPage number for which we want to fetch objects.\n\n---\n\n**page_size**  \nLimit on the number of objects to be returned, between 1 and 100.\n\n---\n\n## List Response Format (Doesn't applies to [List users API](https://apidocs-accesscontrol.getgenea.com/#ae35d3b3-9632-6352-c7ce-8b2020e4796f), [List Locations By Customer](https://apidocs-accesscontrol.getgenea.com/#34bf3ad1-a78e-4210-8fa6-0eae25c704e2) and [List audit event API](https://apidocs-accesscontrol.getgenea.com/#c26cfd4a-7904-4a4c-ae32-71a8fc56089e))\n\n---\n\n**data** array  \nAn array containing actual response elements, paginated by request parameters.\n\n---\n\n**meta** object  \nContains information about the response.\n\n---\n\n**meta.message** string  \nAPI response message.\n\n---\n\n**meta.pagination** object  \nContains pagination related information.\n\n---\n\n**meta.pagination.page** integer  \nCurrent/requested page number.\n\n---\n\n**meta.pagination.page_size** integer  \nNumber of objects requested.\n\n---\n\n**meta.pagination.row_count** integer  \nTotal number of objects.\n\n---\n\n**meta.pagination.page_count** integer  \nTotal number of pages.\n\n---\n\n**meta.pagination.from** integer  \nObject's from counter.\n\n---\n\n**meta.pagination.to** integer  \nObject's to counter.\n\n---\n\n**meta.pagination.order** string  \nSorting order of objects. Possible values ASC or DESC.\n\n---\n\n**meta.pagination.order_by** string  \nField on which sorting should be performed.\n\n---\n\n## List Response Format for [List users API](https://apidocs-accesscontrol.getgenea.com/#ae35d3b3-9632-6352-c7ce-8b2020e4796f)\n\n---\n\n**data** array  \nAn array containing actual response elements, paginated by request parameters.\n\n---\n\n**meta** object  \nContains information about the response.\n\n---\n\n**meta.message** string  \nAPI response message.\n\n---\n\n**meta.page** string  \nCurrent/requested page number.\n\n---\n\n**meta.pageSize** string  \nNumber of objects requested.\n\n---\n\n**meta.rowCount** integer  \nTotal number of objects.\n\n---\n\n**meta.pageCount** integer  \nTotal number of pages.\n\n---\n\n**meta.from** integer  \nObject's from counter.\n\n---\n\n**meta.to** integer  \nObject's to counter.\n\n---\n\n**meta.pagination.order** string  \nSorting order of objects. Possible values ASC or DESC.\n\n---\n\n**meta.pagination.order_by** string  \nField on which sorting should be performed.\n\n---\n\n## List Response Format for [List Locations By Customer](https://apidocs-accesscontrol.getgenea.com/#34bf3ad1-a78e-4210-8fa6-0eae25c704e2)\n\n---\n\n**data** array  \nAn array containing actual response elements, paginated by request parameters.\n\n---\n\n**meta** object  \nContains information about the response.\n\n---\n\n**meta.message** string  \nAPI response message.\n\n---\n\n**meta.page** integer  \nCurrent/requested page number.\n\n---\n\n**meta.page_size** integer  \nNumber of objects requested.\n\n---\n\n**meta.row_count** integer  \nTotal number of objects.\n\n---\n\n**meta.page_count** integer  \nTotal number of pages.\n\n---\n\n**meta.from** integer  \nObject's from counter.\n\n---\n\n**meta.to** integer  \nObject's to counter.\n\n---\n\n## List Response Format for [List audit event API](https://apidocs-accesscontrol.getgenea.com/#c26cfd4a-7904-4a4c-ae32-71a8fc56089e)\n\n---\n\n**data** array  \nAn array containing actual response elements, paginated by request parameters.\n\n---\n\n**meta** object  \nContains information about the response.\n\n---\n\n**meta.message** string  \nAPI response message.\n\n---\n\n**meta.pagination** object  \nContains pagination related information.\n\n---\n\n**meta.pagination.page** string  \nCurrent/requested page number.\n\n---\n\n**meta.pagination.pageSize** string  \nNumber of objects requested.\n\n---\n\n**meta.pagination.rowCount** string  \nTotal number of objects.\n\n---\n\n**meta.pagination.pageCount** string  \nTotal number of pages.\n\n---\n\n**meta.pagination.from** string  \nObject's from counter.\n\n---\n\n**meta.pagination.to** string  \nObject's to counter.\n\n---\n\n# Rate Limit\n\nTo protect the service for all customers, Genea APIs are subject to rate limiting. These limits mitigate denial-of-service attacks and abusive actions such as rapidly updating configurations, aggressive polling and concurrency, or excessive API calls.\n\nBelow is the details of each API and its rate limit.\n\n| **API** | **Rate Limit(Request per Minute)** |\n| --- | --- |\n| Create User | 50 |\n| Add User in Location | 200 |\n| Add Card - Physical | 100 |\n| Update User Custom Attributes | 200 |\n| Upload avatar | 60 |\n| List Users | 60 |\n| List Building Access event | 30 |\n| Get user | 200 |\n| Get today attendance | 60 |\n| Get users by access group | 200 |\n| To enable/disable apple wallet for all users | 50 |\n| All other Endpoints | 100 |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"43376","team":15495,"collectionId":"ce9fa63d-5058-7ea0-49e0-e487cc3d1521","publishedId":"6YzuYst","public":true,"publicUrl":"https://apidocs-accesscontrol.getgenea.com","privateUrl":"https://go.postman.co/documentation/43376-ce9fa63d-5058-7ea0-49e0-e487cc3d1521","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"009CDE"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.4","publishDate":"2021-01-28T17:52:36.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"Genea Access Control API.template","id":"9085d327-53a9-8dca-6203-12431019eb8d","owner":"43376","values":[{"enabled":true,"type":"default","key":"api_url","value":"api.sequr.io"},{"enabled":true,"type":"default","key":"api_token","value":"{{api_token}}"},{"enabled":true,"type":"default","key":"token_type","value":"Bearer"},{"enabled":true,"type":"default","key":"customer_uuid","value":"{{customer_uuid}}"},{"enabled":true,"type":"default","key":"location_id","value":"{{location_id}}"},{"enabled":true,"type":"default","key":"location_uuid","value":"{{location_uuid}}"},{"enabled":true,"type":"default","key":"user_uuid","value":"{{user_uuid}}"},{"enabled":true,"type":"default","key":"user_location_uuid","value":"{{user_location_uuid}}"},{"enabled":true,"type":"default","key":"interface_uuid","value":"{{interface_uuid}}"},{"enabled":true,"type":"default","key":"reader_uuid","value":"{{reader_uuid}}"},{"enabled":true,"type":"default","key":"page","value":"1"},{"enabled":true,"type":"default","key":"page_size","value":"10"},{"enabled":true,"type":"default","key":"order","value":"DESC"},{"enabled":true,"type":"default","key":"order_by","value":"{{order_by}}"},{"enabled":true,"type":"default","key":"attribute_type_uuid","value":"{{attribute_type_uuid}}"},{"enabled":true,"type":"default","key":"custom_attribute_uuid","value":"{{custom_attribute_uuid}}"},{"enabled":true,"type":"default","key":"msp1_port_uuid","value":"{{msp1_port_uuid}}"},{"enabled":true,"type":"default","key":"door_uuid","value":"{{door_uuid}}"},{"enabled":true,"type":"default","key":"schedule_uuid","value":"{{schedule_uuid}}"},{"enabled":true,"type":"default","key":"door_group_id","value":"{{door_group_id}}"},{"enabled":true,"type":"default","key":"controller_uuid","value":"{{controller_uuid}}"},{"enabled":true,"type":"default","key":"interface_uuid","value":"{{interface_uuid}}"},{"enabled":true,"type":"default","key":"schedule_id","value":"{{schedule_id}}"},{"enabled":true,"type":"default","key":"access_group_id","value":"{{access_group_id}}"},{"enabled":true,"type":"default","key":"api_key","value":"{{api_key}}"},{"enabled":true,"type":"default","key":"qr_code_uuid","value":"{{qr_code_uuid}}"},{"enabled":true,"type":"default","key":"limit","value":"{{limit}}"},{"enabled":true,"type":"default","key":"role_uuid","value":"{{role_uuid}}"},{"enabled":true,"type":"default","key":"access_group_uuid","value":"{{access_group_uuid}}"},{"enabled":true,"type":"default","key":"authority_level_uuids","value":"authority_level_uuids"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/fcd8d6d49c71395e3ce378124f5baedc9d5da1ba083d24197cfd30b2c91e5eea","favicon":"https://res.cloudinary.com/postman/image/upload/v1598527503/team/j45rsp2jycmvxbjy0cpa.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[{"label":"CURRENT","value":"latest"},{"label":"2.0.0","value":"bb49bbc2-6c95-42c0-be65-2bdd85e9f072"},{"label":"1.0.0","value":"3cb3ff2a-783d-4b21-8b96-c46b0226c2eb"}],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Genea Access Control API.template","value":"43376-9085d327-53a9-8dca-6203-12431019eb8d"}],"canonicalUrl":"https://apidocs-accesscontrol.getgenea.com/view/metadata/6YzuYst"}