How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Best Practice Software SQL Passthrough API

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 limited to 8MB.**Async queries** are queued for execution and results can be retrieved later. The workflow is: 1. **Submit async query** – Creates a query and returns a `queryId` on success. 2. **Get query status** – Check query status. When complete, includes pagination details. 3. **Get query result page** – Retrieve result pages using the pagination info from the status response.**Registered Queries** are also supported. See the [Registered Queries](#tag/Registered-Queries) section for more information.

Best Practice Software SQL Passthrough API is one of 5 APIs that Best Practice Software publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include 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 10 operations across 10 paths, and defines 40 schemas. It is described by OpenAPI 3.2.0, at version 26.619.10213.

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

10 operations 10 paths 40 schemas 5 GET5 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
26.619.10213
Base URL
https://api.haloconnect.io
Authentication
API Key, HTTP Bearer, API Key
Resource Areas
1

Authentication & Security 3

Best Practice Software SQL Passthrough API declares 3 security schemes for authenticating requests. An API key is passed in the header as Ocp-Apim-Subscription-Key (SubscriptionKey). It accepts HTTP bearer tokens (JWT) (AuthorizationHeader). An API key is passed in the header as DeviceId (DeviceIdHeader).

  • SubscriptionKey — The subscription key for the API.
  • AuthorizationHeader — Bearer token for authentication.
  • DeviceIdHeader — Device ID of the device making the request.

Paths & Operations 10

Across 10 paths, the API surfaces 10 operations — 5 GET, 5 POST. Each is listed below with its method, path, parameters, and response codes.

SQL Passthrough 10

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
/desktop/sites/{siteId}/queries/immediate
Execute immediate query
createImmediateQuery 1 param body → 200400401403404500503504
POST
/desktop/sites/{siteId}/queries/async
Submit async query
createAsyncQuery 1 param body → 201400401403404500503504
GET
/desktop/sites/{siteId}/queries/{queryId}
Get query status
getQuery 2 params → 200400401403404500
GET
/desktop/sites/{siteId}/queries/{queryId}/results/{pageNumber}
Get query result page
getResultPage 3 params → 200400401403404410500
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

Schemas 40

The contract defines 40 schemas that model the data the API accepts and returns. The most detailed are AsyncQuery (10 properties), ImmediateQuery (9 properties), SuccessfulImmediateQueryProperties (6 properties), FailedQueryErrorPropertiesV2 (6 properties). Each schema is shown below with its type and property counts.

SuccessfulImmediateQuery
QueryResult
object
4 properties 3 required
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.…
AsyncQueryStatus
string
Status initialisationFailedSiteOffline means query failed as the site closed session. initialisationFailedSiteUnreachable means site hasn't contacted two minut…
StatusTiming
object
The server time (UTC) at which a query entered and exited the various states.
4 properties 1 required
Type
string
Specifies SQL Server-specific data type of a field, property.
StatusTimingImmediate
object
The server time (UTC) at which a query entered and exited the various states.
4 properties 2 required
FailedQueryErrorPropertiesV2
object
6 properties
ImmediateCommand
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…
ImmediateMaxTimeInQueue
integer
Command
object
4 properties 1 required
Id
string
Unique identifier of the entity.
CommandSize
integer
Data
string
Result data that is base64 encoded returned from the executed query.
AsyncQueryInitialised
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…
InitialisedAsyncQueryProperties
object
1 property 1 required
Date
string
AsyncMaxTimeInQueue
integer
Parameter
object
5 properties
IntegratorId
string
Id of the Integrator that created the query.
RequestSize
integer
ResultSize
integer
ExecutionFailedImmediateQuery
Error
object
1 property
Size
integer
The maximum size, in bytes, of the data within the column.
SiteId
string
Halo GUID of the site.
Direction
string
A value that indicates whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
ImmediateQuery
object
9 properties 10 required
AsyncQuery
object
10 properties 10 required
AsyncCommand
Value
stringnull
Gets or sets the value of the parameter.
ErrorDetails
object
3 properties
SuccessfulImmediateQueryProperties
object
6 properties 4 required
NonQueryResult
object
3 properties 2 required
QueryMetrics
object
1 property 1 required
QueryExecutionFailErrorType
string
QueryStatusBatchResultStatus
string
QueryStatusBatchResult
object
3 properties 2 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

best-practice-sql-passthrough-api-openapi.yml Raw ↑

Other APIs Best Practice Software publishes across the network.

Best Practice Software FHIR API
Best Practice Software Registered Queries API
Best Practice Software Sites API
Best Practice Software Tokens API
Where this information came from

This is an independent, third-party profile of Best Practice Software SQL Passthrough API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.