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

FHIR

Get clinical data status

get

Get event and entity counts for the workspace's clinical data.

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
Responses
200

Successful Response

application/json
configuredbooleanRequired
connector_typestring · nullableOptional
event_countintegerRequired
entity_countintegerRequired
get/v1/{workspace_id}/fhir/status
GET /v1/{workspace_id}/fhir/status HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "configured": true,
  "connector_type": "text",
  "event_count": 1,
  "entity_count": 1,
  "entity_type_counts": {
    "ANY_ADDITIONAL_PROPERTY": 1
  },
  "resource_type_counts": {
    "ANY_ADDITIONAL_PROPERTY": 1
  }
}

Import FHIR Bundle

post

Import a FHIR Bundle. Decomposes supported resources into upserted world events and creates patient entities. Unsupported resource types are skipped and reported; omitted resources are not deleted.

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
sourcestring · max: 128OptionalDefault: fhir_import
source_systemstring · max: 128 · nullableOptional
data_source_idstring · uuid · nullableOptional
dedupbooleanOptional

When true, identical re-uploads of the same FHIR resource are skipped via content-hash dedup. Set to false to force emission regardless of content changes.

Default: true
unsupported_resource_policystring · enumOptional

Controls resources whose resourceType is missing or not projected by platform FHIR APIs. 'error' skips the resource and adds a per-resource error; 'skip' skips it without adding an error. Unsupported resources are never emitted as silent raw world events.

Default: errorPossible values:
Responses
200

Successful Response

application/json
events_createdintegerRequired
events_skippedintegerOptionalDefault: 0
events_updatedintegerOptionalDefault: 0
entities_createdintegerRequired
entities_updatedintegerRequired
error_countintegerOptionalDefault: 0
errorsstring[] · max: 1000Optional
errors_truncatedbooleanOptionalDefault: false
unsupported_resource_countintegerOptionalDefault: 0
unsupported_resources_truncatedbooleanOptionalDefault: false
upsert_semanticsconst: same_resource_id_upsertOptional

FHIR import uses workspace + resourceType + id as the natural key. Identical re-uploads can be deduped; changed resources supersede prior current events.

Default: same_resource_id_upsert
absence_semanticsconst: absent_resources_persistOptional

Resources omitted from a later bundle are not deleted or archived by import.

Default: absent_resources_persist
post/v1/{workspace_id}/fhir/import
POST /v1/{workspace_id}/fhir/import HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 202

{
  "bundle": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "source": "fhir_import",
  "source_system": "text",
  "data_source_id": "123e4567-e89b-12d3-a456-426614174000",
  "dedup": true,
  "unsupported_resource_policy": "error"
}
{
  "events_created": 1,
  "events_skipped": 0,
  "events_updated": 0,
  "entities_created": 1,
  "entities_updated": 1,
  "error_count": 0,
  "errors": [
    "text"
  ],
  "errors_truncated": false,
  "unsupported_resource_count": 0,
  "unsupported_resources": [
    {
      "resource_type": "text",
      "resource_id": "text",
      "location": "text",
      "reason": "text"
    }
  ],
  "unsupported_resources_truncated": false,
  "upsert_semantics": "same_resource_id_upsert",
  "absence_semantics": "absent_resources_persist"
}

List patients (clinical view)

get

Frontend-ready patient list with flattened demographics, conditions, medications, allergies, and insurance. Optionally scoped to a specific data source via data_source_id.

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
qstring · nullableOptional

Search by name

data_source_idstring · uuid · nullableOptional

Scope to data source

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/patients
GET /v1/{workspace_id}/fhir/views/patients HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "patients": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "first_name": "text",
      "last_name": "text",
      "birth_date": "text",
      "gender": "text",
      "phone": "text",
      "email": "text",
      "mrn": "text",
      "address": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "address_state": "text",
      "address_postal_code": "text",
      "address_city": "text",
      "active_conditions": [
        "text"
      ],
      "active_medications": [
        "text"
      ],
      "allergies": [
        "text"
      ],
      "insurance": [
        {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        }
      ],
      "primary_payer_name": "text",
      "practice_payer_id": "text",
      "member_id": "text",
      "policyholder_name": "text",
      "policyholder_relationship": "text",
      "policyholder_dob": "text",
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "confidence": 1,
      "last_event_at": "text",
      "created_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

List practitioners

get

Frontend-ready practitioner list with name, NPI, specialty, phone. Optionally scoped to a data source.

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
qstring · nullableOptional

Search by name

data_source_idstring · uuid · nullableOptional

Scope to data source

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/practitioners
GET /v1/{workspace_id}/fhir/views/practitioners HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "practitioners": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "npi": "text",
      "specialty": "text",
      "phone": "text",
      "email": "text",
      "member_id": "text",
      "scheduling_eligible": true,
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

List locations

get

Frontend-ready location list with name, address, phone, hours. Optionally scoped to a data source.

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
qstring · nullableOptional

Search by name

data_source_idstring · uuid · nullableOptional

Scope to data source

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/locations
GET /v1/{workspace_id}/fhir/views/locations HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "locations": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "address": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "address_line": "text",
      "city": "text",
      "state": "text",
      "postal_code": "text",
      "country": "text",
      "latitude": 1,
      "longitude": 1,
      "timezone": "text",
      "facility_id": "text",
      "phone": "text",
      "hours": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

List appointments

get

Frontend-ready appointment list with date, status, patient, practitioner, location, reason. Optionally scoped to a data source.

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
qstring · nullableOptional

Search

data_source_idstring · uuid · nullableOptional

Scope to data source

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/appointments
GET /v1/{workspace_id}/fhir/views/appointments HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "appointments": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "text",
      "start": "text",
      "end": "text",
      "patient_name": "text",
      "practitioner_name": "text",
      "location_name": "text",
      "reason": "text",
      "cancel_reason": "text",
      "appointment_type": "text",
      "duration_minutes": 1,
      "modality": "text",
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

List availability slots

get

Frontend-ready provider availability slot list with start, end, status, schedule reference, and provider display name. Optionally scoped to a data source.

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
qstring · nullableOptional

Search

data_source_idstring · uuid · nullableOptional

Scope to data source

statusstring · nullableOptional

Slot status (e.g. 'free', 'busy')

datestring · nullableOptional

Start date YYYY-MM-DD (filters slots on or after this date)

daysinteger · min: 1 · max: 90Optional

Number of days forward from date (default 7)

Default: 7
providerstring · nullableOptional

Provider name (partial match, e.g. 'Woloski')

specialtystring · nullableOptional

Specialty (partial match, e.g. 'Psychiatry')

service_typestring · nullableOptional

Visit/service type name (partial match, e.g. 'Follow-up')

facility_idstring · nullableOptional

Facility ID

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/slots
GET /v1/{workspace_id}/fhir/views/slots HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "slots": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "text",
      "start": "text",
      "end": "text",
      "schedule_ref": "text",
      "provider_name": "text",
      "provider_id": "text",
      "facility_id": "text",
      "specialty": "text",
      "visit_type_ids": "text",
      "visit_type_names": "text",
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

List organizations

get

Frontend-ready organization list with name, phone, domain, industry, address. Optionally scoped to a data source.

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
qstring · nullableOptional

Search by name

data_source_idstring · uuid · nullableOptional

Scope to data source

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/views/organizations
GET /v1/{workspace_id}/fhir/views/organizations HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "organizations": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "phone": "text",
      "domain": "text",
      "industry": "text",
      "address": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "source_system": "text",
      "canonical_id": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

Search patients

get

Search patient entities by name, MRN, or phone.

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
qstring · nullableOptional

Search by name, MRN, phone, or entity ID

mrnstring · nullableOptional

Search by MRN

phonestring · nullableOptional

Search by phone

sort_bystring · nullableOptional

Sort field with +/- prefix (e.g. -last_event_at)

limitinteger · min: 1 · max: 100OptionalDefault: 20
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/patients
GET /v1/{workspace_id}/fhir/patients HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "patients": [
    {
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "name": "text",
      "birth_date": "text",
      "gender": "text",
      "phone": "text",
      "email": "text",
      "mrn": "text",
      "event_count": 0,
      "last_event_at": "text"
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

Patient timeline

get

Get the full event timeline for a patient entity.

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
patient_idstringRequired
Query parameters
domainstring · nullableOptional
limitinteger · min: 1 · max: 200OptionalDefault: 50
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
entity_idstring · uuidRequired
totalintegerRequired
get/v1/{workspace_id}/fhir/patients/{patient_id}/timeline
GET /v1/{workspace_id}/fhir/patients/{patient_id}/timeline HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "entity_id": "123e4567-e89b-12d3-a456-426614174000",
  "events": [
    {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ],
  "total": 1
}

Patient summary

get

Get the agent-maintained world model state for a patient.

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
patient_idstringRequired
Responses
200

Successful Response

application/json
entity_idstring · uuidRequired
entity_typestringRequired
display_namestring · nullableRequired
event_countintegerRequired
last_event_atstring · date-time · nullableRequired
namestring · nullableOptional

Patient name

phonestring · nullableOptional

Primary phone number (E.164)

emailstring · nullableOptional

Primary email address

birth_datestring · nullableOptional

Date of birth (YYYY-MM-DD)

genderstring · nullableOptional

Gender

mrnstring · nullableOptional

Medical record number

get/v1/{workspace_id}/fhir/patients/{patient_id}/summary
GET /v1/{workspace_id}/fhir/patients/{patient_id}/summary HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "entity_id": "123e4567-e89b-12d3-a456-426614174000",
  "entity_type": "text",
  "display_name": "text",
  "event_count": 1,
  "last_event_at": "2026-01-01T00:00:00.000Z",
  "name": "text",
  "phone": "text",
  "email": "text",
  "birth_date": "text",
  "gender": "text",
  "mrn": "text"
}

Search FHIR resources

get

Search FHIR resources by type with standard search parameters.

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
resource_typestring · max: 64Required
Query parameters
_countinteger · min: 1 · max: 100OptionalDefault: 20
_offsetintegerOptionalDefault: 0
namestring · max: 200 · nullableOptional
identifierstring · max: 200 · nullableOptional
birthdatestring · max: 32 · nullableOptional
datestring · max: 32 · nullableOptional
patientstring · max: 128 · nullableOptional
statusstring · max: 64 · nullableOptional
qstring · max: 200 · nullableOptional

General search text

Responses
200

Successful Response

application/json
resource_typestringRequired
totalinteger · nullableRequired
next_urlstring · nullableOptional
get/v1/{workspace_id}/fhir/resources/{resource_type}
GET /v1/{workspace_id}/fhir/resources/{resource_type} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "resource_type": "text",
  "total": 1,
  "entries": [
    {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ],
  "next_url": "text"
}

Create a FHIR resource

post

Create a new FHIR resource. Automatically creates patient entities.

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
resource_typestring · max: 64Required
Body
data_source_idstring · uuid · nullableOptional
Responses
201

Successful Response

application/json
resource_typestringRequired
resource_idstringRequired
entity_idstring · uuid · nullableOptional
post/v1/{workspace_id}/fhir/resources/{resource_type}
POST /v1/{workspace_id}/fhir/resources/{resource_type} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 103

{
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "data_source_id": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "resource_type": "text",
  "resource_id": "text",
  "entity_id": "123e4567-e89b-12d3-a456-426614174000",
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Get FHIR resource history

get

Fetch the version history and changed-field provenance for a FHIR resource.

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
resource_typestring · max: 64Required
resource_idstring · max: 128Required
Query parameters
limitinteger · min: 1 · max: 50OptionalDefault: 10
offsetintegerOptionalDefault: 0
Responses
200

Successful Response

application/json
resource_typestringRequired
resource_idstringRequired
totalintegerRequired
has_morebooleanOptionalDefault: false
next_offsetinteger · nullableOptional
get/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}/history
GET /v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}/history HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "resource_type": "text",
  "resource_id": "text",
  "entries": [
    {
      "event_id": "123e4567-e89b-12d3-a456-426614174000",
      "event_type": "text",
      "source": "text",
      "source_system": "text",
      "data_source_id": "123e4567-e89b-12d3-a456-426614174000",
      "entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "confidence": 1,
      "is_current": true,
      "effective_at": "text",
      "created_at": "text",
      "fields_affected": [
        "text"
      ],
      "data": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      }
    }
  ],
  "total": 1,
  "has_more": false,
  "next_offset": 1
}

Get a FHIR resource

get

Fetch a single FHIR resource by type and ID.

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
resource_typestring · max: 64Required
resource_idstring · max: 128Required
Responses
200

Successful Response

application/json
resource_typestringRequired
resource_idstringRequired
entity_idstring · uuid · nullableOptional
get/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}
GET /v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "resource_type": "text",
  "resource_id": "text",
  "entity_id": "123e4567-e89b-12d3-a456-426614174000",
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Update a FHIR resource

put

Update a FHIR resource. Creates a new event that supersedes the old one.

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
resource_typestring · max: 64Required
resource_idstring · max: 128Required
Body
data_source_idstring · uuid · nullableOptional
Responses
200

Successful Response

application/json
resource_typestringRequired
resource_idstringRequired
entity_idstring · uuid · nullableOptional
put/v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id}
PUT /v1/{workspace_id}/fhir/resources/{resource_type}/{resource_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 103

{
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "data_source_id": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "resource_type": "text",
  "resource_id": "text",
  "entity_id": "123e4567-e89b-12d3-a456-426614174000",
  "data": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Last updated

Was this helpful?