Clients | FieldCamp API
The Clients endpoint lets you create and manage the people or companies you do work for.
A client is the person or company a job is for. Every job references a client. Most integrations create a client once on first order and reuse the client ID on subsequent jobs.
Fields worth knowing
emailis the de-facto lookup key. Always store it. Use it withGET /api/clients+ client-side filter to find existing clients before creating new ones.phoneNumberis structured —{ countryCode, number, countryIdentifier }. See the PhoneNumber block in theNewClientschema rendered below.billingAddressandpropertyAddressare independent. Pass the sameAddressobject to both if they're identical; don't skipbillingAddress.stageis free-text but commonly one ofLead,Active Client,Inactive.
Gotchas
List endpoints have no server-side filters. To find an existing client by email, you fetch all clients and filter in your code. See Idempotency.
Endpoints
/api/clientsPass your JWT API key as Authorization: Bearer <token>. Send
alongside X-API-Key: <token> for maximum compatibility.
In: header
Response Body
application/json
application/json
application/json
curl -X GET "https://api.fieldcamp.ai/api/clients"{
"success": true,
"data": {
"clients": [
{
"firstName": "Jane",
"lastName": "Cooper",
"email": "jane@example.com",
"phoneNumber": {
"countryCode": "+44",
"number": "7555123456",
"countryIdentifier": "gb"
},
"companyName": "Acme Moving Co.",
"companyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"propertyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"billingAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"stage": "Active Client",
"properties": [
"string"
],
"jobFormIds": [
"string"
],
"id": "string",
"recordId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
]
}
}{
"success": false,
"error": "Invalid or expired token"
}{
"success": false,
"error": "Internal server error"
}/api/clientsPass your JWT API key as Authorization: Bearer <token>. Send
alongside X-API-Key: <token> for maximum compatibility.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://api.fieldcamp.ai/api/clients" \ -H "Content-Type: application/json" \ -d '{ "firstName": "Jane", "lastName": "Cooper", "email": "jane@example.com", "phoneNumber": { "countryCode": "+1", "number": "5550101234", "countryIdentifier": "us" }, "companyName": "Acme Moving Co.", "propertyAddress": { "street": "500 Example Ave", "city": "Springfield", "state": "IL", "country": "United States", "zipCode": "62701" }, "billingAddress": { "street": "500 Example Ave", "city": "Springfield", "state": "IL", "country": "United States", "zipCode": "62701" }, "stage": "Active Client", "properties": [], "jobFormIds": [] }'{
"success": true,
"data": {
"client": {
"firstName": "Jane",
"lastName": "Cooper",
"email": "jane@example.com",
"phoneNumber": {
"countryCode": "+44",
"number": "7555123456",
"countryIdentifier": "gb"
},
"companyName": "Acme Moving Co.",
"companyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"propertyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"billingAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"stage": "Active Client",
"properties": [
"string"
],
"jobFormIds": [
"string"
],
"id": "string",
"recordId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
}
}{
"success": false,
"error": "jobNumber is required"
}{
"success": false,
"error": "Invalid or expired token"
}{
"success": false,
"error": "Internal server error"
}/api/clients/{id}Pass your JWT API key as Authorization: Bearer <token>. Send
alongside X-API-Key: <token> for maximum compatibility.
In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://api.fieldcamp.ai/api/clients/string"{
"success": true,
"data": {
"client": {
"firstName": "Jane",
"lastName": "Cooper",
"email": "jane@example.com",
"phoneNumber": {
"countryCode": "+44",
"number": "7555123456",
"countryIdentifier": "gb"
},
"companyName": "Acme Moving Co.",
"companyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"propertyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"billingAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"stage": "Active Client",
"properties": [
"string"
],
"jobFormIds": [
"string"
],
"id": "string",
"recordId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
}
}{
"success": false,
"error": "Invalid or expired token"
}/api/clients/{id}Pass your JWT API key as Authorization: Bearer <token>. Send
alongside X-API-Key: <token> for maximum compatibility.
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://api.fieldcamp.ai/api/clients/string" \ -H "Content-Type: application/json" \ -d '{ "stage": "Active Client", "properties": [ "string" ], "jobFormIds": [ "string" ] }'{
"success": true,
"data": {
"client": {
"firstName": "Jane",
"lastName": "Cooper",
"email": "jane@example.com",
"phoneNumber": {
"countryCode": "+44",
"number": "7555123456",
"countryIdentifier": "gb"
},
"companyName": "Acme Moving Co.",
"companyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"propertyAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"billingAddress": {
"street": "221B Baker Street",
"houseNumber": "",
"city": "London",
"state": "England",
"country": "United Kingdom",
"zipCode": "NW1 6XE",
"formattedAddress": "221B Baker Street, London, England, NW1 6XE, United Kingdom",
"latitude": 51.5237,
"longitude": -0.1585,
"plusCode": ""
},
"stage": "Active Client",
"properties": [
"string"
],
"jobFormIds": [
"string"
],
"id": "string",
"recordId": "string",
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}
}
}{
"success": false,
"error": "Invalid or expired token"
}