Calven Developer Docs
    • Overview
    • Access Control
    • Basic Authentication
    • HMAC Authentication
    • SDKs
    • Calven Data Models
    • Changelog
    • Authentication
      • Generate a token with an API key and HMAC
        POST
      • Generate a token with an API key and client secret
        POST
    • Presence
      • Presence Overview
      • Submit presence events
        POST
      • Submit presence events (Basic auth)
        POST
    • Occupancy
      • Occupancy Overview
      • Submit occupancy events
        POST
    • Time Off
      • Submit time off updates
        POST
    • Access Credentials
      • Submit access credentials
        POST
    • Warehouse - Basic Auth
      • Warehouse API (Basic Auth)
      • Users (Basic auth)
        GET
      • Groups (Basic auth)
        GET
      • Locations (Basic auth)
        GET
      • Desks (Basic auth)
        GET
      • Bookings & Attendance (Basic auth)
        GET
      • Presence (Basic auth)
        GET
      • User Actions Log (Basic auth)
        GET
      • Events (Basic auth)
        GET
    • Warehouse - HMAC Auth
      • Warehouse API (HMAC Auth)
      • Users
      • Groups
      • Locations
      • Desks
      • Bookings & Attendance
      • Presence
      • User Actions Log
      • Events
    • Hierarchy Information
      • Org Hierarchy Information Overview
      • Submit group hierarchy relationships
      • Submit group hierarchy relationships (Basic auth)
    • User Attributes
      • User Attributes Overview
      • Write directory user attributes
      • Write directory user attributes (Basic auth)
    • Visitor Management
      • Submit visitor arrival events
      • Submit visitor arrival events (Basic auth)
    • Parking
      • Retrieve parking bookings
      • Retrieve parking bookings (Basic auth)
    • Schemas
      • Schemas
      • DWEventsResponseDto

    Access Control

    Calven authenticates API requests with API keys. When Calven creates a key it has two distinct properties:
    Permissions - the set of endpoints the key can call
    Authentication type - whether the key is used for Basic authentication or for token-based (HMAC) authentication
    Your API keys carry broad access to your data, so keep them secure.
    To use the API you will require an API key and secret, which can be created in Calven.

    Authentication#

    Calven supports two types of authentication:
    1.
    Basic authentication
    2.
    HMAC authentication
    Basic authentication sends the API key and secret with each request.
    HMAC authentication never transmits the secret with the request. Instead, it uses the secret to generate a hashed message authentication code (HMAC) based on the request data. The secret stays confidential and does not travel over the wire, making it less susceptible to man-in-the-middle attacks. Additionally, because the recipient can independently compute the expected HMAC using the shared secret, it helps verify both the integrity and authenticity of the request.
    Each key is created for one authentication type, not both:
    A standard key authenticates through the /v1/auth endpoints to obtain a bearer token, and cannot be used for Basic authentication. Use this type if your client can compute an HMAC or you use Calven's SDKs.
    A Basic authentication key works only on the /basic endpoint variants, and cannot be used with the /v1/auth endpoints. Use this type if your tools cannot calculate an HMAC as part of the request.

    Access Control#

    Each API key carries a set of permissions, chosen when the key is created. Each endpoint requires a specific permission, and a request from a key without that permission is rejected.
    A key's permissions cannot be changed after creation. To change what a key can access, create a new key.
    PermissionGrantsEndpointsReturns personal data
    dm:group:hierarchyrelationship:writeWrite group hierarchy relationshipsPUT /v1/directory/group-hierarchy-relationshipNo
    dm:user:attribute:writeWrite user attributesPOST /v1/directory/user-attributesNo
    event:readRead event dataGET /v1/analytics/eventsNo
    group:readRead groupsGET /v1/analytics/groupsNo
    location:occupancy:writeSubmit occupancy eventsPOST /v1/occupancyNo
    location:readRead locationsGET /v1/analytics/locationsNo
    parking:booking:readRead parking booking reportsGET /v1/parking/booking-reportYes
    user:accesscredential:writeCreate and update user access credentialsPOST /v1/access-credentialsNo
    user:booking:readRead booking and attendance dataGET /v1/analytics/change-log/user
    GET /v1/analytics/user-booking-attendance
    Yes
    user:plan:writeSubmit time off updatesPOST /v1/timeoffNo
    user:presence:readRead presence dataGET /v1/analytics/presenceYes
    user:presence:writeSubmit presence eventsPOST /v1/presenceNo
    user:profile:readRead user profilesGET /v1/analytics/usersYes
    visitor:arrival:writeSubmit visitor arrival eventsPOST /v1/visitor-arrivalNo
    GET /v1/analytics/desks requires both location:read and user:profile:read.
    The /basic variants of endpoints require the same permissions as the token-authenticated endpoint.
    Modified at 2026-09-01 04:40:13
    Previous
    Overview
    Next
    Basic Authentication
    Built with