Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Halo Cloud API for Integrators

The integrator-facing Halo Cloud API from Best Practice's Halo Connect platform. Lets approved partners query Bp Premier practice data by four means - Sites (retrieve site metadata and onboarding info), SQL Passthrough (execute SQL against the practice database), FHIR (search practice data as HL7 FHIR R4 resources), and Registered Queries (recurring SQL). OpenAPI 3.1.1, authenticated with an Azure API Management subscription key (Ocp-Apim-Subscription-Key header); every call requires an active pairing with the target site.

Halo Cloud API for Integrators is one of 3 APIs that Best Practice Software publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include FHIR, Healthcare, Interoperability, and SQL Passthrough. The published artifact set on APIs.io includes an OpenAPI specification, an API reference, API documentation, and a getting-started guide.

This API exposes 17 operations across 15 paths, organized into 4 resource areas, and defines 79 schemas. It is described by OpenAPI 3.1.1, at version 26.619.10213.

Requests are made against 2 base URLs: https://api.haloconnect.io, https://api.stage.haloconnect.io.

17 operations 15 paths 79 schemas 1 DELETE9 GET7 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.1
API Version
26.619.10213
Base URL
https://api.haloconnect.io
Authentication
API Key
Resource Areas
4

Authentication & Security 1

Halo Cloud API for Integrators declares 1 security scheme for authenticating requests. An API key is passed in the header as Ocp-Apim-Subscription-Key (SubscriptionKey). By default, every request must be authenticated.

  • SubscriptionKey — The subscription key for the API.

Paths & Operations 17

Across 15 paths, the API surfaces 17 operations — 1 DELETE, 9 GET, 7 POST. They span 4 resource areas: SQL Passthrough, Registered Queries, FHIR, Sites. Each is listed below with its method, path, parameters, and response codes.

SQL Passthrough 6

Send SQL queries to practices as immediate, async or registered queries. Immediate queries are small, time-sensitive queries that return a result in seconds. Response size is limi…

POST
/integrator/sites/{siteId}/queries/immediate
Execute immediate query
createImmediateQuery 1 param body → 200400401403404500503504
POST
/integrator/sites/{siteId}/queries/async
Submit async query
createAsyncQuery 1 param body → 201400401403404500503504
GET
/integrator/sites/{siteId}/queries/{queryId}
Get query status
getQuery 2 params → 200400401403404500
POST
/integrator/sites/{siteId}/queries/status
Get batch query status
getQueryStatusBatch 1 param body → 200400401403404500
GET
/integrator/sites/{siteId}/queries/{queryId}/results/{pageNumber}
Get query result page
getResultPage 3 params → 200400401403404410500
GET
/integrator/sites/{siteId}/queries/{queryId}/results/{pageNumber}/stream
Stream result page
streamResultPage 3 params → 200400401403404410500
Registered Queries 5

Recurring queries that run at a specified frequency, and can be used to monitor for updates or new records. This type is recommended for polling use cases.

POST
/integrator/sites/{siteId}/queries/registered
Create registered query
createRegisteredQuery 1 param body → 202400401403404500
GET
/integrator/sites/{siteId}/queries/registered
List registered queries
getRegisteredQueries 1 param → 200400401403404500
GET
/integrator/sites/{siteId}/queries/registered/{queryId}
Get registered query details
getRegisteredQuery 2 params → 200400401403404500
DELETE
/integrator/sites/{siteId}/queries/registered/{queryId}
Cancel registered query
cancelRegisteredQuery 2 params → 204400401403404500
GET
/integrator/sites/{siteId}/queries/registered/{queryId}/results
Get registered query results
getRegisteredQueryResult 2 params → 200400401403404500
FHIR 2

Query practices using FHIR resources.

GET
/integrator/sites/{siteId}/fhir/R4/{fhirParameters}
Search FHIR resources
getFhirQuery 2 params → 200400401403404500503504
POST
/integrator/sites/{siteId}/fhir/R4/{resource}/_search
Search FHIR resources (POST)
postFhirSearch 2 params body → 200400401403404500503504
Sites 4

Endpoints for practice onboarding and site metadata.

POST
/integrator/pair-site
Pair with a site
Integrator_PairSite 3 params → 200400401403404500502
POST
/integrator/pairSitedeprecated
Pair with a site (deprecated)
pairSite 3 params → 200400401403404500502
GET
/integrator/sites
Find sites by PMS ID
getSites 2 params → 200400401403500
GET
/integrator/sites/{siteId}
Get site status
getSite 1 param → 200400401403404500

Schemas 79

The contract defines 79 schemas that model the data the API accepts and returns. The most detailed are SiteForIntegrator (16 properties), RegisteredQuery (11 properties), AsyncQuery (10 properties), ImmediateQuery (9 properties). Each schema is shown below with its type and property counts.

ImmediateMaxTimeInQueue
integer
ExecutionMode
string
Selects between fetching data or writing to the database. reader executes the command (e.g. SELECT) and returns rows of data. nonQuery executes the command (e.…
CommandType
string
Indicates how the text property is to be interpreted. text executes the SQL contained within the text property. storedProcedure calls the stored procedure name…
Direction
string
A value that indicates whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
Type
string
Specifies SQL Server-specific data type of a field, property.
Value
stringnull
Gets or sets the value of the parameter.
Size
integer
The maximum size, in bytes, of the data within the column.
Parameter
object
5 properties
Command
object
4 properties 1 required
Catalogue
string
Indicates which database to run against. If no catalogue is specified a default catalogue will be chosen instead. Supported for all PMS with multiple databases…
ImmediateCommand
Id
string
Unique identifier of the entity.
IntegratorId
string
Id of the Integrator that created the query.
SiteId
string
Halo GUID of the site.
CommandSize
integer
RequestSize
integer
Date
string
ImmediateQuery
object
9 properties 10 required
StatusTimingImmediate
object
The server time (UTC) at which a query entered and exited the various states.
4 properties 2 required
QueryMetrics
object
1 property 1 required
Data
string
Result data that is base64 encoded returned from the executed query.
QueryResult
object
4 properties 3 required
NonQueryResult
object
3 properties 2 required
ResultSize
integer
SuccessfulImmediateQueryProperties
object
6 properties 4 required
SuccessfulImmediateQuery
Error
object
1 property
StatusTiming
object
The server time (UTC) at which a query entered and exited the various states.
4 properties 1 required
QueryExecutionFailErrorType
string
ErrorDetails
object
3 properties
FailedQueryErrorPropertiesV2
object
6 properties
ExecutionFailedImmediateQuery
AsyncMaxTimeInQueue
integer
AsyncCommand
AsyncQueryInitialised
QueuedAsyncQueryProperties
object
1 property 1 required
AsyncQueryQueued
ExecutingAsyncQueryProperties
object
1 property 1 required
AsyncQueryExecuting
UploadingAsyncQueryProperties
object
2 properties 2 required
AsyncQueryUploading
ResultPageStatus
string
Rows
object
3 properties
Page
object
4 properties
AsyncQueryResult
object
3 properties 3 required
AsyncNonQueryResult
object
3 properties 3 required
SuccessfulAsyncQueryProperties
object
4 properties 3 required
AsyncQuerySuccessful
InitialisationFailedAsyncQueryProperties
object
2 properties 2 required
AsyncQueryInitialisationFailed
ExpiredInQueueAsyncQueryProperties
object
2 properties 2 required
AsyncQueryExpiredInQueue
ExecutionFailedAsyncQueryProperties
object
2 properties 2 required
FailedQueryErrorProperties
object
2 properties 2 required
AsyncQueryExecutionFailed
UploadFailedAsyncQueryProperties
object
2 properties 2 required
AsyncQueryUploadFailed
AsyncQueryStatus
string
Status initialisationFailedSiteOffline means query failed as the site closed session. initialisationFailedSiteUnreachable means site hasn't contacted two minut…
AsyncQuery
object
10 properties 10 required
InitialisedAsyncQueryProperties
object
1 property 1 required
RegisteredQueryStatus
string
RegisteredQueryMetrics
object
7 properties
RegisteredQuery
object
11 properties 8 required
RegisteredQueryPostReq
object
5 properties 5 required
RegisteredQueryId
object
1 property 1 required
RegisteredQueryResult
object
4 properties 4 required
QueryStatusBatchResultStatus
string
QueryStatusBatchResult
object
3 properties 2 required
FhirResource
object
Singular FHIR resource of the requested type.
FhirBundle
object
Bundle of FHIR resources of the requested type(s).
OperationOutcome
object
OperationOutcome resource containing error details.
PMSType
The name of the practice management software.
SiteAvailability
string
Availability of the site based on time last heard from the site.
SiteStatus
string
Status of the site.
HaloLinkVersion
string
Assembly version of Halo Link client making the call. Usually CalVer [YY.MMDD.BuildNumber.0]
SiteCatalogues
array
List of catalogues (databases) available for the site.
PracticeMetadata
object
4 properties
SiteForIntegrator
object
16 properties
PracticeManagementName
string
Name of the practice management software.

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

haloconnect-integrator-openapi.json Raw ↑

Other APIs Best Practice Software publishes across the network.

Halo Cloud API for Desktop Applications
FHIR API for Bp Premier