Download OpenAPI specification:
API for integration with Homebase360 customer and job management system
Retrieves customer information based on search criteria. At least one query parameter (customerId, phone, or email) should be provided for targeted search, otherwise it might return an empty list or limited results.
| customerId | string Specific customer ID to look for. If provided, other filters are ignored. |
| phone | string Customer's mobile phone number (US/CA E.164 format, e.g. +13038286690). Searches based on |
string Customer's email address. Searches if the email exists in the customer's email array. | |
| limit | integer <= 100 Default: 25 Maximum number of results to return (max 100) |
{- "success": true,
- "data": [
- {
- "customerId": "Ekk9AvDeDihAEU8CMT0W",
- "businessId": "xsUrbqrcTQSyFjJOtpEZyC0BUUK2",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "phone": {
- "mobile": "+13038286690",
- "home": "+13035551234",
- "work": "+13037778888",
- "additional": "+13039990000"
}, - "email": [
- "john.smith@example.com",
- "jsmith@work.com"
], - "address": [
- "123 Main St, Denver, CO 80202",
- "456 Side St, Apt 2, Denver, CO 80203"
], - "notifications": true,
- "notes": "Prefers afternoon appointments. Gate code #1234.",
- "tags": [
- "VIP",
- "Referral",
- "Gate Code"
], - "attachments": [ ],
- "dateAdded": "2023-04-15T10:30:00Z",
- "lastUpdated": "2023-04-20T15:45:00Z",
- "lastJob": "2023-04-18T09:00:00Z",
- "geocodedAddresses": [
- {
- "address": "123 Main St, Denver, CO 80202",
- "lat": 39.7392,
- "lng": -104.9903
}
]
}
]
}Creates a new customer. Requires at least firstName or lastName, and at least one contact method (a valid phone number in phone or a non-empty email in email).
| firstName | string Customer's first name. Required if lastName is not provided. |
| lastName | string Customer's last name. Required if firstName is not provided. |
object (Phone) Phone numbers object. All phone numbers must be US/CA E.164 format (e.g. +13038286690). Empty strings are acceptable if number is not available. Only mobile, home, work, and additional keys are allowed. | |
Array of strings <email> [ items <email > ] List of email addresses. At least one required if phone is not provided. Must be valid email formats. | |
| address | Array of strings List of physical addresses (optional). |
| notes | string Additional notes about the customer (optional). |
| tags | Array of strings Tags for categorization (optional). |
| notifications | boolean Default: true Whether the customer should receive notifications (optional, defaults to true). |
{- "firstName": "John",
- "lastName": "Smith",
- "phone": {
- "mobile": "+13038286690",
- "home": "+13035551234",
- "work": "",
- "additional": ""
}, - "email": [
- "john.smith@example.com",
- ""
], - "address": [
- "123 Main St, Denver, CO 80202",
- ""
], - "notes": "Prefers afternoon appointments",
- "tags": [
- "VIP",
- "Referral"
], - "notifications": true
}{- "success": true,
- "data": {
- "customerId": "Ekk9AvDeDihAEU8CMT0W"
}
}Updates specific fields of an existing customer. Only provided fields are updated. displayName is updated automatically if firstName or lastName changes.
| customerId required | string ID of the customer to update |
| firstName | string Customer's first name. |
| lastName | string Customer's last name. |
object (Phone) Phone numbers object. All phone numbers must be US/CA E.164 format (e.g. +13038286690). Empty strings are acceptable if number is not available. Only mobile, home, work, and additional keys are allowed. | |
Array of strings <email> [ items <email > ] Complete list of desired email addresses. Must be valid email formats. | |
| address | Array of strings Complete list of desired physical addresses. |
| notes | string New notes for the customer. |
| tags | Array of strings Complete list of desired tags. |
| notifications | boolean Update notification preference. |
{- "lastName": "Smith-Updated",
- "phone": {
- "mobile": "+13038286690",
- "home": "+13035551235"
}, - "notes": "Updated notes via API",
- "notifications": false,
- "tags": [
- "API",
- "Updated"
]
}{- "success": true,
- "data": {
- "message": "Customer updated"
}
}Retrieves jobs based on search criteria. If jobId is provided, returns that job. If startDate and/or endDate are provided, filters jobs where start time falls within the range (inclusive of start, inclusive of end). If no date parameters are given, defaults to returning jobs where the start time is on the current day (based on server time).
| jobId | string Specific job ID to look for. If provided, date filters are ignored. |
| startDate | string <date-time> Filter jobs starting on or after this date/time in ISO 8601 format (e.g. "2023-05-15T00:00:00Z"). Defaults to the start of the current day if omitted. |
| endDate | string <date-time> Filter jobs starting on or before this date/time in ISO 8601 format (e.g. "2023-05-15T23:59:59Z"). If omitted and |
| limit | integer <= 100 Default: 50 Maximum number of results to return (max 100) |
{- "success": true,
- "data": [
- {
- "jobId": "jKv8AvFrRihBTU7CMQ9Z",
- "businessId": "xsUrbqrcTQSyFjJOtpEZyC0BUUK2",
- "lineItems": [
- {
- "name": "Window Cleaning",
- "description": "Cleaning all exterior windows and frames",
- "quantity": 1,
- "unitPrice": "150.00",
- "taxRate": {
- "name": "Standard",
- "rate": "7.00"
}
}
], - "start": "2024-08-15T14:30:00Z",
- "end": "2024-08-15T16:30:00Z",
- "dispatchedTo": [
- {
- "id": "PKmjY5yCX2SK2FJWqtgSWwmIi1U2",
- "firstName": "Derick",
- "lastName": "DeCesare",
- "displayName": "Derick DeCesare"
}
], - "createdById": "apiKeyDocIdOrUserId",
- "note": "Please call customer 30 mins before arrival.",
- "timezone": "America/Denver",
- "isRecurring": false,
- "estimateId": null,
- "lastUpdated": "2024-08-10T15:45:00Z",
- "dateAdded": "2024-08-10T10:30:00Z",
- "customer": {
- "customerId": "Ekk9AvDeDihAEU8CMT0W",
- "businessId": "xsUrbqrcTQSyFjJOtpEZyC0BUUK2",
- "firstName": "John",
- "lastName": "Smith",
- "displayName": "John Smith",
- "phone": {
- "mobile": "+13038286690",
- "home": "+13035551234",
- "work": "+13037778888",
- "additional": "+13039990000"
}, - "email": [
- "john.smith@example.com",
- "jsmith@work.com"
], - "address": [
- "123 Main St, Denver, CO 80202",
- "456 Side St, Apt 2, Denver, CO 80203"
], - "notifications": true,
- "notes": "Prefers afternoon appointments. Gate code #1234.",
- "tags": [
- "VIP",
- "Referral",
- "Gate Code"
], - "attachments": [ ],
- "dateAdded": "2023-04-15T10:30:00Z",
- "lastUpdated": "2023-04-20T15:45:00Z",
- "lastJob": "2023-04-18T09:00:00Z",
- "geocodedAddresses": [
- {
- "address": "123 Main St, Denver, CO 80202",
- "lat": 39.7392,
- "lng": -104.9903
}
]
}, - "leadSource": {
- "online": true,
- "direct": false,
- "other": false,
- "salesPerson": {
- "id": "PKmjY5yCX2SK2FJWqtgSWwmIi1U2",
- "firstName": "Derick",
- "lastName": "DeCesare",
- "displayName": "Derick DeCesare"
}
}
}
]
}Creates a new job associated with an existing customer. Requires customerId, start, end, and a non-empty lineItems array. end time must be after start time. Optionally accepts leadSource information.
| customerId required | string ID of the existing customer for this job. Must exist. |
| start required | string <date-time> Start date and time in ISO 8601 format. Must be before 'end'. |
| end required | string <date-time> End date and time in ISO 8601 format. Must be after 'start'. |
required | Array of objects (LineItem) non-empty List of items/services for the job. Must contain at least one item. See LineItem schema for item structure requirements. |
| note | string Optional note for the job. |
object (LeadSourceInput) Optional object detailing the source of the job lead. Only one of |
{- "customerId": "Ekk9AvDeDihAEU8CMT0W",
- "start": "2024-08-15T14:30:00Z",
- "end": "2024-08-15T16:30:00Z",
- "lineItems": [
- {
- "name": "Window Cleaning",
- "description": "Cleaning all windows",
- "quantity": 1,
- "unitPrice": "150.00",
- "taxRate": {
- "name": "Standard",
- "rate": "7.00"
}
}, - {
- "name": "Screen Repair",
- "quantity": 2,
- "unitPrice": "25.50"
}
], - "note": "Please call customer 30 mins before arrival.",
- "leadSource": {
- "online": true
}
}{- "success": true,
- "data": {
- "jobId": "jKv8AvFrRihBTU7CMQ9Z"
}
}Updates specific fields (start, end, note) of an existing job. Only provided fields are updated. If updating dates, end must remain after start.
| jobId required | string ID of the job to update |
| start | string <date-time> New start date and time in ISO 8601 format. Must be before the 'end' time (either existing or newly provided). |
| end | string <date-time> New end date and time in ISO 8601 format. Must be after the 'start' time (either existing or newly provided). |
| note | string New note for the job. |
{- "start": "2024-08-15T15:00:00Z",
- "end": "2024-08-15T17:00:00Z",
- "note": "Customer requested a later time and confirmed via text."
}{- "success": true,
- "data": {
- "message": "Job updated"
}
}