openapi: 3.0.3 info: title: IntakeQ Appointments Clients API description: The IntakeQ API is a documented REST API for the IntakeQ / PracticeQ practice management platform used by health and wellness practitioners. It exposes clients, appointments, intake questionnaires and consent forms, treatment notes, invoices, and file attachments. All endpoints live under https://intakeq.com/api/v1 and every request must carry the account's API key in an `X-Auth-Key` header (found under More > Settings > Integrations > Developer API). Several resources also emit webhooks (intake completed, note locked, invoice events) configured in the API settings; those are server-to-endpoint HTTP callbacks and are not modeled as request/response operations here. version: '1.0' contact: name: IntakeQ url: https://intakeq.com servers: - url: https://intakeq.com/api/v1 description: IntakeQ production API security: - authKey: [] tags: - name: Clients description: Clients (patients), tags, and diagnoses. paths: /clients: get: operationId: queryClients tags: - Clients summary: Query clients description: Returns a list of clients. Filter with the query parameters below. Returns a maximum of 100 records per page. parameters: - name: search in: query description: Name, email, or numeric client ID to search for. schema: type: string - name: page in: query description: Page number for pagination (max 100 records per page). schema: type: integer - name: includeProfile in: query description: Set to 'true' to include the full client profile. schema: type: boolean - name: dateCreatedStart in: query schema: type: string format: date - name: dateCreatedEnd in: query schema: type: string format: date - name: dateUpdatedStart in: query schema: type: string format: date - name: dateUpdatedEnd in: query schema: type: string format: date - name: externalClientId in: query description: Search by external client ID. schema: type: string - name: deletedOnly in: query description: Return only deleted clients (retrievable within 10 days of deletion). schema: type: boolean responses: '200': description: A list of clients. content: application/json: schema: type: array items: $ref: '#/components/schemas/Client' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' post: operationId: saveClient tags: - Clients summary: Save or update a client description: Creates a new client or updates an existing one. Include `ClientId` in the body to update an existing client; omit it to create a new client. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Client' responses: '200': description: The saved client. content: application/json: schema: $ref: '#/components/schemas/Client' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' /clientTags: post: operationId: addClientTag tags: - Clients summary: Add a tag to a client requestBody: required: true content: application/json: schema: type: object required: - ClientId - Tag properties: ClientId: type: integer Tag: type: string responses: '200': description: Tag added. '401': $ref: '#/components/responses/Unauthorized' delete: operationId: removeClientTag tags: - Clients summary: Remove a tag from a client parameters: - name: clientId in: query required: true schema: type: integer - name: tag in: query required: true schema: type: string responses: '200': description: Tag removed. '401': $ref: '#/components/responses/Unauthorized' /client/{clientId}/diagnoses: get: operationId: queryClientDiagnoses tags: - Clients summary: Query a client's diagnoses parameters: - name: clientId in: path required: true schema: type: integer responses: '200': description: A list of diagnoses for the client. content: application/json: schema: type: array items: type: object additionalProperties: true '401': $ref: '#/components/responses/Unauthorized' components: responses: RateLimited: description: Rate limit exceeded (standard subscription allows 10 requests/minute, max 500/day). Unauthorized: description: Missing or invalid X-Auth-Key. schemas: Client: type: object properties: ClientId: type: integer Name: type: string FirstName: type: string LastName: type: string Email: type: string Phone: type: string DateOfBirth: type: string ExternalClientId: type: string Tags: type: array items: type: string Archived: type: boolean additionalProperties: true securitySchemes: authKey: type: apiKey in: header name: X-Auth-Key description: The account API key found under More > Settings > Integrations > Developer API.