API reference/Clients
Add a client
Try itAdds a client record to your account. It does not invite anyone or send email — client logins are invited from the console.
POST
/api/v1/clientsAuthentication
An API key as Authorization: Bearer or x-api-key. It needs the clients:write scope — add and edit clients; invite and remove client logins.
clients:writeChanges the draft or a recordIdempotency-Key requiredMCP tool: create_client
Parameters
Named placeholders go in the path; the rest in a JSON body.
namestringBody · required- The business, e.g. Rosie's Diner.2 to 120 characters
contact_namestring | nullBody · optional- The person you deal with.At most 120 characters
emailstring | nullBody · optional- The client's email address.At most 200 characters
phonestring | nullBody · optional- Phone number.At most 40 characters
addressstring | nullBody · optional- Postal address.At most 240 characters
notesstring | nullBody · optional- Private notes — never shown to the client.At most 2000 characters
Response
201 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).
curl -X POST 'https://websites.workflowcorp.com/api/v1/clients' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"Maple Street Bakery","contact_name":"Dana Ortiz","email":"dana@maplestreetbakery.test","phone":"(555) 010-2231"}'{
"name": "Maple Street Bakery",
"contact_name": "Dana Ortiz",
"email": "dana@maplestreetbakery.test",
"phone": "(555) 010-2231"
}{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"contact_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"archived": {
"type": "boolean"
},
"site_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"is_sample": {
"type": "boolean"
},
"created_at": {
"type": "string"
}
},
"required": [
"id",
"name",
"contact_name",
"email",
"phone",
"address",
"notes",
"archived",
"site_ids",
"is_sample",
"created_at"
],
"additionalProperties": false
}