openapi: 3.0.3 info: title: Dext Data Health & Insights Clients API version: '1.0' description: Read-only REST API for accounting/bookkeeping practices to extract client data-health metrics and activity statistics from Dext. Authenticate with a bearer token created in Practice settings > Data Health > API tokens. Rate limited to 60 requests per minute. contact: name: Dext Support url: https://help.dext.com/ servers: - url: https://api.precision.dext.com description: Production security: - bearerAuth: [] tags: - name: Clients description: Practice client data-health metrics and activity statistics paths: /clients: get: tags: - Clients operationId: listClients summary: List clients description: Returns a summarised list of all clients the token has access to. responses: '200': description: A summarised list of clients. headers: X-RateLimit-Limit: schema: type: integer description: Request ceiling per minute (60). X-RateLimit-Remaining: schema: type: integer description: Requests remaining in the current window. content: application/json: schema: type: array items: $ref: '#/components/schemas/ClientSummary' '401': description: Missing or invalid bearer token. '429': $ref: '#/components/responses/RateLimited' /clients/{clientId}: get: tags: - Clients operationId: getClient summary: Get client detail description: Returns detailed information for a single client, including data-health metrics, VAT details, and bank reconciliation data. parameters: - name: clientId in: path required: true schema: type: string responses: '200': description: Detailed client record. content: application/json: schema: $ref: '#/components/schemas/ClientDetail' '401': description: Missing or invalid bearer token. '404': description: Client not found or not accessible to this token. '429': $ref: '#/components/responses/RateLimited' /clients/{clientId}/activity-stats: get: tags: - Clients operationId: getClientActivityStats summary: Get client activity statistics description: Returns rolling annual, monthly-average, and quarterly-average activity statistics for a single client. parameters: - name: clientId in: path required: true schema: type: string responses: '200': description: Rolling activity statistics for the client. content: application/json: schema: $ref: '#/components/schemas/ActivityStats' '401': description: Missing or invalid bearer token. '404': description: Client not found or not accessible to this token. '429': $ref: '#/components/responses/RateLimited' components: schemas: ActivityStats: type: object description: Rolling annual, monthly-average, and quarterly-average activity statistics. Field names are not enumerated in the public documentation. ClientDetail: type: object description: Detailed client record including data-health metrics, VAT details, and bank reconciliation data. Field names are not enumerated in the public documentation. ClientSummary: type: object description: Summarised client record as returned by the list endpoint. Field names are not enumerated in the public documentation. responses: RateLimited: description: Rate limit exceeded (more than 60 requests per minute). headers: X-RateLimit-Limit: schema: type: integer X-RateLimit-Remaining: schema: type: integer securitySchemes: bearerAuth: type: http scheme: bearer description: 'API token created in Practice settings > Data Health > API tokens, sent as `Authorization: Bearer `. The token value is shown once on creation and cannot be retrieved afterwards.'