---
title: "Create a client (owner)"
method: POST
path: "/workspaces/{workspaceId}/clients"
tags: ["clients"]
---

# Create a client (owner)

`POST /workspaces/{workspaceId}/clients`

## Request

- Base URL: `https://vetnio.com/api/v2`
- URL: `https://vetnio.com/api/v2/workspaces/{workspaceId}/clients`
- Auth: HTTP bearer

Creates a client (owner) in the workspace. All fields are optional and stored as given, without format validation. Not idempotent and not deduplicated: repeating the call creates another client. Note that patients cannot currently be attached to an existing client through the API (creating a patient always creates its own owner).

## Path parameters

- `workspaceId` string, required: Identifier of the workspace (clinic) that owns the patients and clients. The caller must be a member of it; patients and clients are shared by all members of the workspace.

## Request body

- object
  - `name` string: The owner's full name, free text.
  - `email` string: The owner's email address. Stored as given; the format is not validated.
  - `address` string: The owner's street address, free text.
  - `zipCode` string: The owner's postal code, free text.
  - `phoneNumbers` string[]: The owner's phone numbers, stored as given (no normalisation). E.164 format such as `+46701234567` is recommended. Defaults to an empty list.

## Response `200`

The newly created client.

- ClientOutput: An animal owner registered in the workspace. A client can own any number of patients. Clients are shared by every member of the workspace and are also created automatically when patients are synced from a connected practice-management system.
  - `id` string, required: Client id (UUID), generated by Vetnio.
  - `name` string, nullable, required: The owner's full name, free text. `null` when not recorded, for example for the placeholder owner created with a patient that had no owner details.
  - `address` string, nullable, required: The owner's street address, free text. `null` when not recorded.
  - `zipCode` string, nullable, required: The owner's postal code, free text. `null` when not recorded.
  - `phoneNumbers` string[], required: The owner's phone numbers, stored as given (no normalisation). E.164 format such as `+46701234567` is recommended. Empty array when none are recorded.
  - `email` string, nullable, required: The owner's email address. Stored as given; the format is not validated. `null` when not recorded.

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

[API](https://skmtc.dev/vetnio/apis/vetnio-api.md) - [All operations](https://skmtc.dev/vetnio/apis/vetnio-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vetnio/apis/vetnio-api/revisions/d004afd5617d?raw)
