Contacts
People at customers.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/app/psa/contacts | List contacts |
| POST | /v1/app/psa/contacts | Create contact |
| POST | /v1/app/psa/contacts/:id | Update contact |
| POST | /v1/app/psa/contacts/:id/delete | Delete contact |
#List contacts
GET
/v1/app/psa/contacts- Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.
Response 200
| Field | Type | Description |
|---|---|---|
contacts | array of object | |
contacts[].id | integer | |
contacts[].tenant_id | integer | |
contacts[].customer_id | integer, or null | |
contacts[].first_name | string | |
contacts[].last_name | string | |
contacts[].email | string, or null | |
contacts[].phone | string, or null | |
contacts[].job_title | string, or null | |
contacts[].notes | string, or null | |
contacts[].created_at | string (date-time), or null | |
contacts[].updated_at | string (date-time), or null | |
contacts[].mobile | string, or null | |
contacts[].contact_type | string, or null | |
contacts[].location_id | integer, or null | |
contacts[].is_important | boolean | |
contacts[].customer_name | string |
Example response
JSON
{
"contacts": [
{
"id": 42,
"tenant_id": 1,
"customer_id": 7,
"first_name": "Alex",
"last_name": "Morgan",
"email": "alex@example.com",
"phone": "string",
"job_title": "Example job title",
"notes": "string",
"created_at": "2026-11-12T09:30:00.000Z",
"updated_at": "2026-11-12T09:30:00.000Z",
"mobile": "string",
"contact_type": "string",
"location_id": 7,
"is_important": true,
"customer_name": "Example customer name"
}
]
}Example request
Bash
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts' -Headers $headers#Create contact
POST
/v1/app/psa/contacts- Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.
Request body JSON
| Name | Type | Description |
|---|---|---|
first_namerequired | string | |
last_namerequired | string | |
email | string | |
phone | any | |
job_title | string | |
notes | array of any | |
customer_id | integer |
Response 200
| Field | Type | Description |
|---|---|---|
contact | any |
Example response
JSON
{
"contact": null
}Errors
| Status | Message |
|---|---|
| 400 | first_name and last_name required |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts' -Headers $headers -ContentType 'application/json' -Body $body#Update contact
POST
/v1/app/psa/contacts/:id- Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Request body JSON
| Name | Type | Description |
|---|---|---|
first_name | string | |
last_name | string | |
email | string | |
phone | any | |
job_title | string | |
notes | array of any | |
customer_id | integer |
Response 200
| Field | Type | Description |
|---|---|---|
contact | any |
Example response
JSON
{
"contact": null
}Errors
| Status | Message |
|---|---|
| 404 | Contact not found |
Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42' \
-H "X-API-Key: $BRAMBLE_KEY" \
-H "Content-Type: application/json" \
-d '{"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}'JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}),
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
json={"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
$body = '{"first_name":"Alex","last_name":"Morgan","email":"alex@example.com","phone":"…","job_title":"Example job title","notes":[],"customer_id":7}'
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42' -Headers $headers -ContentType 'application/json' -Body $body#Delete contact
POST
/v1/app/psa/contacts/:id/delete- Address
https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/:id/delete- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Licence: PSA.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
JSON
{
"success": true
}Example request
Bash
curl -X POST 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42/delete' \
-H "X-API-Key: $BRAMBLE_KEY"JavaScript
const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42/delete', {
method: 'POST',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();Python
import os, requests
r = requests.post(
"https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42/delete",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()PowerShell
$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method POST -Uri 'https://<your-org>.brambleit.cloud/api/v1/app/psa/contacts/42/delete' -Headers $headersWas this page helpful?
Thanks for your feedback.