Jobs
The Job object represents a work order or service job in your Custom Trades CRM account.
Endpoints
The Job object
Attributes
uuidstringUnique identifier for the job
job_numberstring |nullJob number
customer_uuidUUIDCustomer UUID (required)
location_uuidUUID |nullLocation UUID
assigned_to_user_idUUID |nullAssigned user ID
titlestringJob title (required)
descriptionstring |nullJob description
statusstringStatus: 'New', 'Contacted', 'Scheduled', 'In Progress', 'Needs Approval', 'Ready to Invoice', 'Invoiced', 'Complete', 'Estimate Sent', 'Estimate Approved'
prioritystringPriority: 'Low', 'Normal', 'High', 'Emergency'
is_urgentbooleanWhether job is urgent
is_emergencybooleanWhether job is emergency
service_address1string |nullService address line 1
service_address2string |nullService address line 2
service_citystring |nullService city
service_statestring |nullService state
service_zipstring |nullService ZIP code
estimated_amountnumber |nullEstimated job amount
actual_amountnumber |nullActual job amount
scheduled_datestring |nullScheduled date (ISO format)
scheduled_time_startstring |nullScheduled start time (HH:MM format)
scheduled_time_endstring |nullScheduled end time (HH:MM format)
started_atstring |nullActual start timestamp
completed_atstring |nullCompletion timestamp
invoiced_atstring |nullInvoice timestamp
paid_atstring |nullPayment timestamp
internal_notesstring |nullInternal notes
customer_notesstring |nullCustomer-facing notes
created_atstringISO timestamp of creation
updated_atstringISO timestamp of last update
deleted_atstring |nullISO timestamp of soft deletion (null if not deleted)
THE JOB OBJECT
{ "uuid": "123e4567-e89b-12d3-a456-426614174000", "job_number": "JOB-001", "title": "Plumbing Repair", "status": "Scheduled", "priority": "Normal", "customer": { "uuid": "...", "first_name": "John", "last_name": "Doe" }, "scheduled_date": "2025-01-20T10:00:00Z"}List jobs
Returns a paginated list of jobs for your company.
Parameters
include_deleted(boolean, default: false)requiredInclude soft-deleted jobs
status(string)Filter by status (comma-separated for multiple: 'New,Scheduled')
location_uuid(UUID)Filter by location
customer_uuid(UUID)Filter by customer
assigned_to_user_id(UUID)Filter by assigned user
priority(string)Filter by priority ('Low', 'Normal', 'High', 'Emergency')
search(string)Search term (searches title, description, job_number)
page(number, default: 1)requiredPage number
limit(number, default: 50, max: 100)requiredItems per page
curl -G \ https://customtradescrm.com/api/v1/jobs?status=Scheduled,In%20Progress \ -H "Authorization: Bearer ctc_live_..."Response
{ "success": true, "data": { "jobs": [ { "uuid": "123e4567-e89b-12d3-a456-426614174000", "job_number": "JOB-001", "title": "Plumbing Repair", "status": "Scheduled", "priority": "Normal", "customer": { "uuid": "...", "first_name": "John", "last_name": "Doe" }, "scheduled_date": "2025-01-20T10:00:00Z" } ], "pagination": { "page": 1, "limit": 50, "total": 1, "total_pages": 1 } }}Get a job
Returns a specific job by UUID with related customer, location, and assigned user information.
curl -G \ https://customtradescrm.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: Bearer ctc_live_..."Create a job
Creates a new job. **Request Body:**
Parameters
customer_uuid(string)requiredCustomer UUID (must belong to your company)
title(string)requiredJob title
location_uuid(string)Location UUID
assigned_to_user_id(string)Assigned user ID
description(string)Job description
status(string)Status (default: 'New')
priority(string)Priority (default: 'Normal')
is_urgent(string)boolean (default: false)
is_emergency(string)boolean (default: false)
estimated_amount(string)Estimated amount
scheduled_date(string)Scheduled date (ISO format)
scheduled_time_start(string)Start time (HH:MM format)
scheduled_time_end(string)End time (HH:MM format)
internal_notes(string)Internal notes
customer_notes(string)Customer-facing notes
curl -G \ Response
{ "customer_uuid": "123e4567-e89b-12d3-a456-426614174000", "title": "Plumbing Repair", "description": "Fix leaky faucet", "status": "New", "priority": "Normal", "scheduled_date": "2025-01-20T10:00:00Z", "scheduled_time_start": "09:00", "scheduled_time_end": "11:00"}Update a job
Updates a job. All fields are optional (partial update). **Request Body:**
curl -G \ Response
{ "status": "In Progress", "actual_amount": 150}Delete a job
Soft deletes a job (sets `deleted_at` timestamp).
Error codes
| HTTP status code | Description |
|---|---|
| 200 | Success |
| 400 | Validation error |
| 401 | Unauthorized (invalid API key) |
| 403 | Forbidden (add-on required, IP restriction, or usage limit exceeded) |
| 404 | Job not found |
| 500 | Server error |
curl -X DELETE \ https://customtradescrm.com/api/v1/jobs/123e4567-e89b-12d3-a456-426614174000 \ -H "Authorization: Bearer ctc_live_..."