Create a client
Needs: Clients, Read-write
Creates a client. Send only the fields below: any other field returns a 422 listing the unsupported fields. To create several at once, or to set contacts and custom attributes, use bulk create.
curl -X POST "https://app.imploy.com.au/api/integrations/v1/clients" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"first_name": "Example",
"last_name": "Client",
"client_type": "NDIS",
"business_id": 1,
"address": "1 Example St, Perth WA 6000",
"primary_contact_email": "example.client@example.com"
}'
import requests
import json
url = "https://app.imploy.com.au/api/integrations/v1/clients"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"first_name": "Example",
"last_name": "Client",
"client_type": "NDIS",
"business_id": 1,
"address": "1 Example St, Perth WA 6000",
"primary_contact_email": "example.client@example.com"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app.imploy.com.au/api/integrations/v1/clients", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"first_name": "Example",
"last_name": "Client",
"client_type": "NDIS",
"business_id": 1,
"address": "1 Example St, Perth WA 6000",
"primary_contact_email": "example.client@example.com"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"first_name": "Example",
"last_name": "Client",
"client_type": "NDIS",
"business_id": 1,
"address": "1 Example St, Perth WA 6000",
"primary_contact_email": "example.client@example.com"
}`)
req, err := http.NewRequest("POST", "https://app.imploy.com.au/api/integrations/v1/clients", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app.imploy.com.au/api/integrations/v1/clients')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"first_name": "Example",
"last_name": "Client",
"client_type": "NDIS",
"business_id": 1,
"address": "1 Example St, Perth WA 6000",
"primary_contact_email": "example.client@example.com"
}'
response = http.request(request)
puts response.body
{
"data": {
"id": 12,
"first_name": "Example",
"last_name": "Client",
"primary_contact_email": "example.client@example.com",
"primary_contact_number": "0400 000 000",
"address": "1 Example St, Perth WA 6000",
"client_type": "NDIS",
"business_id": 1,
"status": "Active",
"created_at": "2026-01-12T03:20:41.000000Z",
"updated_at": "2026-02-03T08:05:10.000000Z"
}
}
{
"message": "Invalid or expired access token."
}
{
"message": "Access token does not permit this action."
}
{
"message": "The first name field is required.",
"errors": {
"first_name": [
"The first name field is required."
]
}
}
{
"message": "Too many requests."
}
/clients
Target server for requests. Edit to use your own host.
An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
imp_at_. Send it as Authorization: Bearer imp_at_XXXX.The media type of the request body
Up to 100 characters. Required on create.
Up to 100 characters. Required on create.
One of HCP, SaH, THCP, GHCP, NDIS or Private. Required on create.
The id of a business location. Required on create. Use the create options endpoint to see the locations you can use.
Up to 100 characters. Defaults to English on create.
Up to 500 characters, or null. Defaults to null on create.
A valid email, up to 255 characters, or null.
Up to 40 characters, or null.
Active or Archived. Defaults to Active on create.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Body
Up to 100 characters. Required on create.
Up to 100 characters. Required on create.
One of HCP, SaH, THCP, GHCP, NDIS or Private. Required on create.
The id of a business location. Required on create. Use the create options endpoint to see the locations you can use.
Up to 100 characters. Defaults to English on create.
Up to 500 characters, or null. Defaults to null on create.
A valid email, up to 255 characters, or null.
Up to 40 characters, or null.
Active or Archived. Defaults to Active on create.