openapi: 3.0.3 info: title: Nookal Appointments Verification API description: 'REST API for Nookal, Australian-built practice management software for allied health clinics. The API exposes patients, cases, treatment notes, files, appointments, class bookings, availabilities, clinic reference data (locations, practitioners, appointment/class types, stock), and invoices. Base URL: https://api.nookal.com/production/v2/. All requests are authenticated with an account-issued API key passed as the `api_key` parameter (query string for GET requests, form field for POST requests). Responses are JSON using a common envelope: `{"status":"success"|"failure","data":{...},"details":{...}}`. On failure, `details` carries `errorMessage`, `errorCode`, and an `alerts` array. Read endpoints are paginated via `page` and `page_length`, and the response `details` object reports `totalItems`, `currentItems`, `currentPage`, and `nextPage`. Endpoint paths, methods, and parameters are grounded in Nookal''s public API reference (https://api.nookal.com/dev). The `verify`, `getLocations`, and `getPatients` surfaces were confirmed live against the production host; the `api_key` requirement is confirmed by live probes. Request and response body schemas below are MODELED from the documented object reference and the live JSON envelope, not copied from a machine-readable Nookal specification (Nookal does not publish one), so field-level shapes should be verified against a live account before production use.' version: v2 contact: name: Nookal url: https://www.nookal.com termsOfService: https://www.nookal.com/terms servers: - url: https://api.nookal.com/production/v2 description: Nookal production API (v2) security: - apiKeyQuery: [] tags: - name: Verification description: Verify that an API key is valid and connected to a Nookal account. paths: /verify: get: operationId: verify tags: - Verification summary: Verify API key description: 'Verifies that the supplied API key is valid and connected to a Nookal account. Confirmed live: without an api_key the endpoint returns a failure envelope with errorCode "L000_1" and alert "Missing variable: api_key".' responses: '200': description: A status envelope indicating whether the key verified. content: application/json: schema: $ref: '#/components/schemas/Envelope' components: schemas: Details: type: object properties: errorMessage: type: string errorCode: type: string alerts: type: array items: type: string totalItems: type: integer currentItems: type: integer currentPage: type: integer nextPage: type: integer pageLength: type: integer Envelope: type: object description: Standard Nookal JSON response envelope. On success, status is "success" and data carries the results object; on failure, status is "failure" and details carries errorMessage, errorCode, and alerts. Shape confirmed live against the verify and getLocations endpoints. properties: status: type: string enum: - success - failure data: type: object additionalProperties: true description: Result payload on success (structure varies per endpoint). details: $ref: '#/components/schemas/Details' securitySchemes: apiKeyQuery: type: apiKey in: query name: api_key description: 'Account-issued API key created in the Nookal application under Setup / Integrations, with a configurable access level. Passed as the `api_key` parameter - in the query string for GET requests and as a form field for POST requests. Confirmed live: omitting it returns a failure envelope with alert "Missing variable: api_key".'