Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.
openapi: 3.2.0
info:
version: 1.0.0
title: Kisi Presences API
description: '## Introduction
Welcome to the Kisi API documentation.'
contact:
name: Kisi Support
email: support@getkisi.com
servers:
- url: https://api.kisi.io
description: Kisi Production
tags:
- name: Presences
paths:
/presences:
get:
operationId: fetchPresences
summary: Fetch presences
description: Represents information about the presence of users in a place for a given date.
tags:
- Presences
security:
- Kisi-Login: []
- OAuth2: []
parameters:
- name: limit
in: query
schema:
type: integer
default: 10
maximum: 250
description: The number of objects to return
- name: offset
in: query
schema:
type: integer
default: 0
maximum: 20000
description: The number of objects to offset
- name: place_id
in: query
schema:
type: integer
required: true
description: The ID of the place to scope by
- name: date
in: query
required: true
schema:
type: string
format: date-time
description: Filters the presences by date. In the place's time zone.
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
title: Presence
properties:
actor_type:
type: string
description: The actor type of the Presence
actor_id:
type: integer
description: The actor id of the Presence
actor_name:
type: string
description: The actor name of the Presence
actor_email:
type: string
description: The actor email of the Presence
last_unlocked_lock_name:
type: string
description: The name of the lock that was unlocked last.
last_unlocked_lock_id:
type: integer
description: The ID of the lock that was unlocked last.
first_unlock_at:
type: string
format: date-time
description: The date-time of the member's first unlock for the given date, in UTC.
last_unlock_at:
type: string
format: date-time
description: The date-time of the member's last unlock for the given date, in UTC.
status:
type: string
enum:
- on_site
- inactive
- checked_out
- expired
description: 'The presence status of a user that was present or is currently present at the place on the given date.
'
place_id:
type: integer
description: The place ID of the presence
required:
- actor_type
- actor_id
- actor_name
- actor_email
- last_unlocked_lock_name
- last_unlocked_lock_id
- first_unlock_at
- last_unlock_at
- status
- place_id
additionalProperties: false
headers:
X-Collection-Range:
description: 'Pagination information for offset based pagination. `start-end` represents the range
of items requested. `total` represents the total count of items. If there is a total
of 15 items and an offset of 10 and limit of 10 is used, the resulting header is:
`10-19/15`.
'
schema:
type: string
pattern: ^(?<start>\d+)-(?<end>\d+)/(?<total>\d+)$
example: 0-9/200
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
description: Schema describing errors.
type: object
properties:
error:
type: string
description: The error message.
example: Wrong email address or password.
code:
type: string
description: An identifier of the error.
example: afc516
required:
- error
- code
securitySchemes:
Webhook-Signature:
type: apiKey
in: header
name: X-Signature
description: 'Authorize using a signature of the request body. The signature is a HMAC-SHA256 hash of the request body using a secret key. <br><br>E.g. `X-Signature: 123`'
Kisi-Login:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a login. Prefix the value with `KISI-LOGIN`<br><br>Example: `Authorization: KISI-LOGIN 123`'
Kisi-Access-Key:
type: apiKey
in: header
name: Authorization
description: 'Authorize using an access key. Prefix the value with `KISI-ACCESS-KEY`<br><br>Example: `Authorization: KISI-ACCESS-KEY 123`'
Kisi-Group-Link:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a group link. Prefix the value with `KISI-GROUP-LINK`<br><br>Example: `Authorization: KISI-GROUP-LINK 123`'
Kisi-Service:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a service. Prefix the value with `KISI-SERVICE`<br><br>Example: `Authorization: KISI-SERVICE 123`'
OAuth2Basic:
type: http
scheme: basic
description: Username is the client id. Password is the client secret.
OAuth2:
type: oauth2
description: 'OAuth access tokens are sent as bearer tokens. Example: `Authorization: Bearer youraccesstoken`'
flows:
authorizationCode:
authorizationUrl: https://api.kisi.io/oauth/authorize
tokenUrl: https://api.kisi.io/oauth/token
scopes: {}
x-provenance:
method: harvested
publisher: KISI
source: https://api.getkisi.com/openapi/apps.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)