For the complete documentation index, see llms.txt. This page is also available as Markdown.

Audit

List Audit Events

get

List audit events with filters and pagination.

Permissions: admin, owner (Audit.view)

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
servicestring · max: 64 · nullableOptional

Filter by service name

actionstring · max: 128 · nullableOptional

Filter by action type

actor_entity_idstring · uuid · nullableOptional

Filter by actor entity

resource_typestring · max: 64 · nullableOptional

Filter by resource type

resource_idstring · uuid · nullableOptional

Filter by specific resource

phi_onlybooleanOptional

Only PHI access events

Default: false
date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

limitinteger · min: 1 · max: 100Optional

Page size

Default: 50
offsetintegerOptional

Page offset

Default: 0
Responses
200

Successful Response

application/json
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
get/v1/{workspace_id}/audit
GET /v1/{workspace_id}/audit HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "events": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "timestamp": "text",
      "service": "text",
      "actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
      "action": "text",
      "resource_type": "text",
      "resource_id": "text",
      "resource_name": "text",
      "ip_address": "text",
      "user_agent": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "phi_accessed": false
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1,
  "has_more": true
}

Get Phi Access Report

get

PHI access report — who accessed what patient data, when, from where.

Required for HIPAA breach investigation (§164.312(b)).

Permissions: admin, owner (Audit.view)

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
entity_idstring · uuid · nullableOptional

Filter by patient entity

date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

limitinteger · min: 1 · max: 100Optional

Page size

Default: 50
offsetintegerOptional

Page offset

Default: 0
Responses
200

Successful Response

application/json
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
get/v1/{workspace_id}/audit/phi-access
GET /v1/{workspace_id}/audit/phi-access HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "events": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "timestamp": "text",
      "service": "text",
      "actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
      "action": "text",
      "resource_type": "text",
      "resource_id": "text",
      "resource_name": "text",
      "ip_address": "text",
      "user_agent": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "phi_accessed": false
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1,
  "has_more": true
}

Get Entity Access Log

get

Per-entity access history — all audit events for a specific resource.

Permissions: admin, owner (Audit.view)

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
entity_idstring · uuidRequired
Query parameters
date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

limitinteger · min: 1 · max: 100Optional

Page size

Default: 50
offsetintegerOptional

Page offset

Default: 0
Responses
200

Successful Response

application/json
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
get/v1/{workspace_id}/audit/entity/{entity_id}/access-log
GET /v1/{workspace_id}/audit/entity/{entity_id}/access-log HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "events": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "timestamp": "text",
      "service": "text",
      "actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
      "action": "text",
      "resource_type": "text",
      "resource_id": "text",
      "resource_name": "text",
      "ip_address": "text",
      "user_agent": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "phi_accessed": false
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1,
  "has_more": true
}

Get Audit Summary

get

Audit summary statistics for compliance dashboard.

Permissions: admin, owner (Audit.view)

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

Responses
200

Successful Response

application/json
total_eventsintegerRequired
phi_access_eventsintegerRequired
unique_actorsintegerRequired
services_with_eventsintegerRequired
get/v1/{workspace_id}/audit/summary
GET /v1/{workspace_id}/audit/summary HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "total_events": 1,
  "phi_access_events": 1,
  "unique_actors": 1,
  "services_with_events": 1
}

Create Audit Export

post

Submit an async audit-events export.

Runs the filtered query on the SQL warehouse with results staged to presigned CSV EXTERNAL_LINKS, and returns a Databricks statement_id. Poll GET /export/{statement_id} for the download links. Nothing is materialized in platform-api, so the export scales to large date windows.

Permissions: admin, owner

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
date_fromstring · date-timeRequired
date_tostring · date-timeRequired
servicestring · max: 64 · nullableOptional

Filter by service name.

actionstring · max: 128 · nullableOptional

Filter by action type.

phi_onlybooleanOptionalDefault: false
Responses
200

Successful Response

application/json
statement_idstringRequired

Databricks statement handle — poll GET /export/{statement_id} for links.

statusstring · enumRequired

pending: still running. ready: links available immediately.

Possible values:
post/v1/{workspace_id}/audit/export
POST /v1/{workspace_id}/audit/export HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "date_from": "2026-01-01T00:00:00.000Z",
  "date_to": "2026-01-01T00:00:00.000Z",
  "service": "text",
  "action": "text",
  "phi_only": false
}
{
  "statement_id": "text",
  "status": "pending"
}

Get Audit Export

get

Poll a submitted audit export and return presigned CSV download links.

status is pending until the statement finishes, then ready with chunks carrying short-lived presigned URLs the client downloads directly from object storage. The links expire quickly (~15 min) — re-poll to refresh. The workspace scope was fixed into the statement at submit time; statement_id is an unguessable, short-lived capability.

Permissions: admin, owner (Audit.export — same gate as create).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
statement_idstringRequired
Responses
200

Successful Response

application/json
statement_idstringRequired
statusstring · enumRequiredPossible values:
result_formatstring · nullableOptional

Result file format (CSV).

total_row_countintegerOptionalDefault: 0
get/v1/{workspace_id}/audit/export/{statement_id}
GET /v1/{workspace_id}/audit/export/{statement_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "statement_id": "text",
  "status": "pending",
  "result_format": "text",
  "total_row_count": 0,
  "chunks": [
    {
      "chunk_index": 1,
      "row_count": 1,
      "byte_count": 1,
      "external_link": "text",
      "expiration": "text"
    }
  ]
}

List My Audit Events

get

List the authenticated caller's own audit events across every workspace.

Any authenticated caller may read their OWN trail — deliberately no Audit.view gate. actor_entity_id is server-set to the caller's entity and is NEVER accepted from the client, so the workspace_id=None query can only ever return the caller's own events (safe cross-workspace).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Query parameters
actionstring · max: 128 · nullableOptional

Filter by action type

resource_typestring · max: 64 · nullableOptional

Filter by resource type

date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

limitinteger · min: 1 · max: 100Optional

Page size

Default: 50
offsetintegerOptional

Page offset

Default: 0
Responses
200

Successful Response

application/json
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
get/v1/audit-log/me
GET /v1/audit-log/me HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "events": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "timestamp": "text",
      "service": "text",
      "actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
      "action": "text",
      "resource_type": "text",
      "resource_id": "text",
      "resource_name": "text",
      "ip_address": "text",
      "user_agent": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "phi_accessed": false
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1,
  "has_more": true
}

List Platform Audit Events

get

Cross-workspace + null-workspace audit read — platform administrators only.

The surface for cross-workspace and null-workspace events (login / token-theft events carry no workspace). Gated strictly on the global platform:admin scope carried by an identity JWT; every other caller — including a workspace owner/admin — is rejected with 403.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Query parameters
workspace_idstring · uuid · nullableOptional

Filter by workspace; omit for all workspaces

servicestring · max: 64 · nullableOptional

Filter by service name

actionstring · max: 128 · nullableOptional

Filter by action type

actor_entity_idstring · uuid · nullableOptional

Filter by actor entity

resource_typestring · max: 64 · nullableOptional

Filter by resource type

resource_idstring · uuid · nullableOptional

Filter by specific resource

phi_onlybooleanOptional

Only PHI access events

Default: false
date_fromstring · date-time · nullableOptional

Start of date range

date_tostring · date-time · nullableOptional

End of date range

limitinteger · min: 1 · max: 100Optional

Page size

Default: 50
offsetintegerOptional

Page offset

Default: 0
Responses
200

Successful Response

application/json
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
get/v1/audit-log/platform
GET /v1/audit-log/platform HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "events": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
      "timestamp": "text",
      "service": "text",
      "actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
      "action": "text",
      "resource_type": "text",
      "resource_id": "text",
      "resource_name": "text",
      "ip_address": "text",
      "user_agent": "text",
      "metadata": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "phi_accessed": false
    }
  ],
  "total": 1,
  "limit": 1,
  "offset": 1,
  "has_more": true
}

Last updated

Was this helpful?