Activate Employee Account
Activate a ServiceTitan employee's login account.
ServiceTitan is field service management software for home and commercial service contractors, covering customers, jobs, dispatch, estimates, invoicing, inventory, memberships, payroll, and reporting.
Activate a ServiceTitan employee's login account.
Activate a ServiceTitan technician's login account with the required license type and, optionally, assign a truck.
Apply a credit memo to one or more invoices in ServiceTitan by adding splits, each an invoice id and an amount. Splits are added to the memo's existing ones; this operation does not remove or replace them.
Add one tag type to one customer in ServiceTitan. Both ids go in the path and no request body is sent; use ADD_TAGS_TO_CUSTOMERS for several at once.
Attach existing installed equipment to a ServiceTitan equipment system, by system id and a list of installed equipment ids. Returns the updated system.
Add one tag type to one location in ServiceTitan. Both ids go in the path and no request body is sent. There is no bulk variant for locations; call once per location and tag.
Add one or more tag types to several customers in ServiceTitan in one call. Every tag type listed is added to every customer listed; use ADD_CUSTOMER_TAG for a single customer and tag.
Approve a ServiceTitan purchase order request by its request id. Takes the request id from LIST_PURCHASE_ORDER_REQUESTS, not a purchase order id. No way to withdraw an approval is documented.
Assign existing skills to a ServiceTitan technician. With replace_existing_skills true the technician's current skills are replaced by the given list; with false the list is added.
Assign one or more technicians to a ServiceTitan job appointment. Returns the appointment.
Attach one or more equipment items to a ServiceTitan job. Returns the full list of equipment IDs attached after the change. The spec does not say which equipment ids these are; they are not the equipment system ids of the equipment-system tools, and whether installed-equipment ids (LIST_INSTALLED_EQUIPMENT) or pricebook equipment ids (LIST_PRICEBOOK_EQUIPMENT) are meant is unverified.
Attach an existing ServiceTitan job to a project. Takes no body.
Create up to 1000 installed equipment records in ServiceTitan in one atomic request. If any record is invalid the whole batch is rolled back and nothing is created.
Create many ServiceTitan pricebook items in one request: services, equipment, materials, and discounts and fees. At least one of those four collections must contain an item. Give each item a customId; links inside the same request (serviceMaterials, recommendations, upgrades) can point to it by customId, and the response maps each customId to its new id.
Delete every ServiceTitan technician shift in a date range, for all technicians. The only criteria are start and end; there is no technician filter, so check the range with List Technician Shifts first.
Update many ServiceTitan pricebook items in one request: services, equipment, materials, and discounts and fees. At least one of those four collections must contain an item. Each item must carry its id and the documented full set of fields, not just the changed ones.
Cancel a ServiceTitan inventory receipt by id, optionally recording a cancellation reason. This cannot be undone through the API: no way to reopen a canceled inventory receipt is documented.
Cancel a ServiceTitan vendor return by id, optionally recording a cancellation reason. This cannot be undone through the API: no way to reopen a canceled vendor return is documented.
Cancel a ServiceTitan job with a cancel reason and memo. Jobs cannot be deleted, only canceled; get the reason ID from List Job Cancel Reasons.
Cancel a ServiceTitan purchase order by id, optionally recording a cancellation reason. This cannot be undone through the API: no way to reopen a canceled purchase order is documented.
Cancel a long-running report data query in ServiceTitan and release its query_token. Succeeds even if the query had already finished; the result can no longer be fetched afterwards.
Mark a ServiceTitan job appointment as confirmed. Takes no body; the appointment's isConfirmed flag becomes true.
Create an adjustment invoice against an existing invoice in ServiceTitan, for example a refund or a write-off; adjustment_to_id names the invoice being adjusted. It cannot create an ordinary job invoice, and the response is a bare integer that the spec does not describe.
Add a new appointment to an existing ServiceTitan job, with start and end times and optional technicians. A job's first appointment is created by Create Job; use this only for additional visits.
Create a ServiceTitan arrival window with a start time and duration for a set of business units.
Create a booking in ServiceTitan, an incoming request that office staff later book as a job or dismiss. It does not create a job; send at least one phone or email in contacts so staff can follow up.
Add a contact entry (phone, email or fax) to a booking in ServiceTitan for a given booking provider. This is the booking's own contact list, separate from the GUID person contacts managed with CREATE_CONTACT and CREATE_CONTACT_METHOD.
Create a booking provider tag in ServiceTitan, the label that identifies one source of bookings. Both tag_name and description are required.
Create a full ServiceTitan budget code from a list of segment item IDs. Use Create Partial Budget Code when some segments have no item chosen.
Set the ServiceTitan business hours by sending the open time ranges for weekdays, Saturday and Sunday. All three lists are required; whether this replaces existing hours is not documented.
Create a marketing campaign in ServiceTitan. name, business_unit_id, category_id and active are required.
Create a marketing campaign category in ServiceTitan. Returns only the new category's id.
Create the cost record of a marketing campaign for one month in ServiceTitan. The amount is given as a daily cost, not a monthly total.
Create a contact (a person record with name and title) in ServiceTitan. It is not linked to anything yet; add phone or email with CREATE_CONTACT_METHOD and link it with CREATE_CONTACT_RELATIONSHIP.
Add a contact method (phone, mobile phone, email or fax) to a contact in ServiceTitan. contact_id is the GUID of a person contact from CREATE_CONTACT or LIST_CONTACTS; to add a phone or email directly to a customer, location or booking use CREATE_CUSTOMER_CONTACT, CREATE_LOCATION_CONTACT or CREATE_BOOKING_CONTACT.
Link a contact to a customer, location or booking in ServiceTitan. All three values go in the path and no request body is sent.
Create a customer in ServiceTitan together with its first location or locations. name, address and at least one entry in locations are required; merging or deactivating customers is not available through the API.
Add a contact entry (phone, mobile phone, email or fax) to a customer in ServiceTitan. It is not copied to the customer's locations. This is the customer's own contact list, separate from the GUID person contacts managed with CREATE_CONTACT and CREATE_CONTACT_METHOD.
Add a note to a customer in ServiceTitan. Set add_to_locations to copy the same note to the customer's active locations.
Create an office employee in ServiceTitan with a role and positions; returns the new employee id. account_creation_method picks CreateLater, SendInvite or AssignLoginAndPassword; the spec does not describe what each one does.
Create an equipment system at a ServiceTitan customer location, optionally attaching installed equipment to it. The name must be unique within the location.
Create an equipment type in ServiceTitan for classifying installed equipment.
Create an estimate in ServiceTitan on a job or project, with its line items. Use it to quote work before it is sold; every field is optional in the spec, and which ones ServiceTitan actually needs (such as job_id or project_id) is not documented.
Create an estimate template in ServiceTitan from a list of pricebook items. Static templates need a unitPrice on every item; Dynamic templates take prices from the pricebook.
Attribute a phone call tracked by outside call-tracking software to a web session in ServiceTitan Marketing Ads. It records attribution only; it does not create a call, lead or job.
Create a finding in ServiceTitan to record an issue or observation at a customer location, with an urgency level and optional links to installed equipment and the job where it was found. Attachments link file URLs; no file content is uploaded.
Add an attachment to a ServiceTitan finding by linking a file URL with a file name and media type. No file content is sent; the spec expects the URL returned by ServiceTitan's findings upload endpoint, which is not available as a tool.
Create a general ledger (GL) account in ServiceTitan and return the created account. The spec marks no field as required; use LIST_GL_ACCOUNT_TYPES for valid type names.
Send GPS location pings for technician vehicles or units to ServiceTitan for a configured GPS provider, so they plot on the Dispatch Map. Returns a per-ping result; a ping can fail while the call succeeds.
Create a gross pay item inside an existing payroll in ServiceTitan and return its id. payroll_id, amount, activity_code_id and date are required; find the payroll id with LIST_PAYROLLS.
Create a record of equipment installed at a ServiceTitan customer location, with serial number, warranty dates, and an optional parent equipment or system. Only location_id is required.
Create an inventory adjustment in ServiceTitan that changes stock quantities at one inventory location. Only the types Adjustment, BeginningBalance, and Consignment can be created; item quantities may be negative.
Record a receipt of items against an existing ServiceTitan purchase order. items lists each SKU received with its quantity and cost.
Create a vendor return in ServiceTitan inventory, recording items sent back to a vendor from an inventory location.
Create a vendor return type in ServiceTitan inventory, with its vendor-credit, sales-tax and default settings. Its id is the return_type_id that CREATE_INVENTORY_RETURN requires.
Create a task on an invoice in ServiceTitan from a task template. template_id is required and no tool in this toolkit lists invoice task templates, so the id must come from the user or from an existing task's template_id. This is an invoice workflow task, not a Task Management task (CREATE_TASK).
Create a membership invoice template in ServiceTitan from a list of line items; returns the new template id. Memberships bill from these templates and recurring service jobs are invoiced from them.
Book a new ServiceTitan job for a customer and location, with at least one appointment. Customer and location must already exist; the job's first appointment is created from the appointments list.
Attribute an existing job to a web session in ServiceTitan Marketing Ads. It records attribution only; the job must already exist.
Add a note to a ServiceTitan job, optionally pinned to the top.
Create a ServiceTitan job type with its name, priority, duration, business units, skills and default tags.
Create a journal entry with debit and credit lines in ServiceTitan; it is marked external automatically. status and version_id are required (the spec does not document what version_id a new entry should carry; unverified without a live account), and the documented response has no body, so the new id is not returned: find the entry with LIST_JOURNAL_ENTRIES.
Create a payroll labor type in ServiceTitan and return its id. name, code and active are all required.
Create a lead in ServiceTitan. campaign_id and summary are required, and one of call_reason_id or follow_up_date must be sent; passing booking_id irreversibly dismisses that booking and turns it into this lead; ServiceTitan documents no operation to undo the dismissal. For a web-form style lead with just a name and contact details and no campaign id, use SUBMIT_LEAD_FORM.
Schedule a follow-up on a lead in ServiceTitan by setting the next follow-up date, with an optional note.
Add a note to a lead in ServiceTitan.
Create a location (service address) in ServiceTitan under an existing customer. name, address and customer_id are required.
Add a contact entry (phone, mobile phone, email or fax) to a location in ServiceTitan. The provider guide says an entry added to a new location is also copied to its customer. This is the location's own contact list, separate from the GUID person contacts managed with CREATE_CONTACT and CREATE_CONTACT_METHOD.
Add a note to a location in ServiceTitan. Set add_to_customer to copy the same note to the location's customer.
Sell a membership to a customer in ServiceTitan by creating a membership sale invoice; returns the new invoice id and customer membership id. It creates a real invoice and membership together, so call it only once the sale is confirmed. Setting recurring_service_action=None deletes the customer's existing recurring services.
Block time on a ServiceTitan technician's schedule for a non-customer activity such as a meeting, training or time off, optionally repeating. For a customer visit use Create Appointment.
Opt one or more phone numbers out of contact in ServiceTitan. The whole request fails if any number cannot be parsed, and a number already opted out globally cannot be opted out for marketing.
Create a partial ServiceTitan budget code from segment bindings, where a segment may be left without an item. Use Create Budget Code when every segment has an item.
Create a payroll adjustment, a manual earning or deduction for one employee or technician, in ServiceTitan and return its id. employee_type must match the kind of id given in employee_id.
Create a category in the ServiceTitan pricebook, as a Services or Materials category. Set parent_id to create it as a subcategory.
Create a discount or a fee in the ServiceTitan pricebook. The type field decides which one, and amount_type decides whether the amount is a percentage or a fixed value.
Create an equipment item in the ServiceTitan pricebook catalog, with pricing, warranty, vendors, and categories. This does not record equipment installed at a location; use CREATE_INSTALLED_EQUIPMENT for that.
Create a material in the ServiceTitan pricebook, with cost, pricing, vendors, and categories. Only code and description are required.
Create a material markup tier in the ServiceTitan pricebook: a from/to range and the markup percent applied to it. The documented body also requires an id value.
Create a service in the ServiceTitan pricebook, with pricing, warranty, categories, and linked materials and equipment. Only code and description are required.
Create a ServiceTitan project at a location to group related jobs. Only the location is required; jobs are added afterwards with Attach Job To Project.
Add a note to a ServiceTitan project, optionally pinned to the top.
Create a proposal template in ServiceTitan that assigns an estimate template to each option of a proposal type. Each proposal type option may appear only once in estimate_assignments.
Create a purchase order in ServiceTitan for items ordered from a vendor. vendor_id, type_id, business_unit_id and inventory_location_id name existing records, and only the id of the new purchase order is returned.
Create a purchase order markup tier in ServiceTitan: a from/to range and the markup percent applied to it.
Create a purchase order type in ServiceTitan, with its receiving, tax, payroll, and alert settings. Most settings are required, not optional.
Create a subtask under an existing task in ServiceTitan Task Management, assigned to an employee. The documented response has no subtask id; it returns parent_task_id and subtask_number.
Create a tag type in ServiceTitan with a name and a hex color; returns the new tag type id. Keep the name to 30 characters or fewer.
Create an office task in ServiceTitan Task Management, assigned to an employee. The type, source, business unit and employee ids come from GET_TASK_REFERENCE_DATA. These are Task Management tasks, not the invoice workflow tasks of CREATE_INVOICE_TASK / LIST_INVOICE_TASKS.
Create a ServiceTitan dispatch team with a name and active flag.
Create a field technician in ServiceTitan with a role, positions and license type; returns the new technician id. Get role_id from LIST_USER_ROLES.
Record a rating from 0 to 10 for a technician on a specific job in ServiceTitan. If that technician and job already have a rating, it is overwritten with the new score.
Create a ServiceTitan shift (Normal, OnCall or TimeOff) for one or more technicians, optionally repeating daily or weekly. Returns the list of shifts created.
Create a new skill in ServiceTitan and assign it to one technician in the same call. To give a technician skills that already exist use Assign Technician Skills.
Create a timesheet activity, a block of recorded time for one employee or technician, in ServiceTitan and return its id. employee_id, employee_type, activity_type_id, start_time and tag_type_ids are required; end_time is optional.
Create a truck inventory location in ServiceTitan. warehouse_id and name are required.
Create an inventory vendor (supplier) in ServiceTitan. The vendor's main address is required.
Attribute an existing booking to a web session in ServiceTitan Marketing Ads. It records attribution only; the booking must already exist.
Attribute an existing lead captured from a web form to a web session in ServiceTitan Marketing Ads. It records attribution only; the lead must already exist.
Create a ServiceTitan dispatch zone from zip codes, cities, territory numbers, service days and business units.
Deactivate a ServiceTitan employee's login account.
Deactivate an estimate template in ServiceTitan. The template is not removed: it becomes inactive and stops appearing in active-only lists.
Deactivate a proposal template in ServiceTitan. The template is not removed and can be reactivated by updating it with active true.
Deactivate a ServiceTitan technician's login account.
Delete a ServiceTitan job appointment by ID. The API refuses to delete the only appointment on a job or one with timesheets; an individual appointment cannot be canceled, only deleted.
Remove one contact entry from a booking in ServiceTitan for a given booking provider. The booking itself is kept.
Delete a contact in ServiceTitan by its GUID. To keep the record but hide it, set is_archived with UPDATE_CONTACT instead.
Delete one contact method from a contact in ServiceTitan. contact_id is the GUID of a person contact from CREATE_CONTACT or LIST_CONTACTS; to add a phone or email directly to a customer, location or booking use CREATE_CUSTOMER_CONTACT, CREATE_LOCATION_CONTACT or CREATE_BOOKING_CONTACT.
Remove the link between a contact and a customer, location or booking in ServiceTitan. The contact itself is kept.
Remove one contact entry from a customer in ServiceTitan.
Delete one note from a customer in ServiceTitan.
Delete a ServiceTitan equipment system by id.
Remove one line item from an estimate in ServiceTitan. The removal is permanent.
Remove an attachment from a ServiceTitan finding, by finding id and attachment id.
Delete a gross pay item in ServiceTitan by its id. The spec documents no response body and no way to restore a deleted item.
Delete one line item from an invoice in ServiceTitan. The item is removed from the invoice and its totals; the documented response has no body.
Delete one attachment from a job in ServiceTitan. The spec documents no way to restore a deleted attachment.
Delete a journal entry in ServiceTitan. Only external entries, those created through the API, can be deleted; the spec documents no way to restore one.
Remove one contact entry from a location in ServiceTitan.
Delete one note from a location in ServiceTitan.
Delete a ServiceTitan non-job appointment by its ID.
Delete a payroll adjustment in ServiceTitan by its id. employee_type is required and must match the adjustment's owner; the spec documents no way to restore it.
Delete a category from the ServiceTitan pricebook by id. To hide a category without deleting it, use UPDATE_PRICEBOOK_CATEGORY with active set to false.
Delete a discount or fee from the ServiceTitan pricebook by id. To hide it without deleting, use UPDATE_PRICEBOOK_DISCOUNT_OR_FEE with active set to false.
Delete an equipment item from the ServiceTitan pricebook catalog by id. To hide it without deleting, use UPDATE_PRICEBOOK_EQUIPMENT with active set to false.
Delete a material from the ServiceTitan pricebook by id. To hide it without deleting, use UPDATE_PRICEBOOK_MATERIAL with active set to false.
Delete a service from the ServiceTitan pricebook by id. To hide it without deleting, use UPDATE_PRICEBOOK_SERVICE with active set to false.
Delete one attachment from a ServiceTitan project daily log. The file is removed from the log.
Delete a ServiceTitan purchase order markup tier by id.
Delete a ServiceTitan dispatch team by its ID.
Delete one ServiceTitan technician shift by its ID.
Remove a skill from a ServiceTitan technician by deleting the technician-skill association, whose ID has the form {technicianId}_{skillId}.
Delete a timesheet activity in ServiceTitan by its id. The recorded time is removed; the spec documents no way to restore it.
Delete a ServiceTitan dispatch zone by its ID.
Detach one or more equipment items from a ServiceTitan job in a single call. Returns no content. The spec does not say which equipment ids these are; they are not the equipment system ids of the equipment-system tools, and whether installed-equipment ids (LIST_INSTALLED_EQUIPMENT) or pricebook equipment ids (LIST_PRICEBOOK_EQUIPMENT) are meant is unverified.
Detach a ServiceTitan job from whichever project it belongs to. Only the job ID is given; the project is not named.
Dismiss a booking in ServiceTitan for a given booking provider, marking it as not converted to a job. Optionally record a call reason and a memo; no way to undo this is documented.
Mark an estimate as dismissed in ServiceTitan, for a quote the customer will not accept. The estimate is kept, with status Dismissed. No operation to reopen a dismissed estimate is documented; UPDATE_ESTIMATE takes a status field, but whether setting it to Open undoes a dismissal is not documented.
Dismiss a lead in ServiceTitan so it needs no further follow-up. A call reason id is required as the dismissal reason; no way to reopen a lead is documented.
Export ServiceTitan technician-to-appointment assignments in bulk as a continuation feed. Use it for full or incremental sync; use List Appointment Assignments when you need filters.
Export ServiceTitan job appointments in bulk as a continuation feed. Use it for full or incremental sync; use List Appointments when you need filters beyond active status.
Export bookings from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch; use LIST_BOOKINGS for filtered lookups.
Export feed of business units from ServiceTitan for bulk sync. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_BUSINESS_UNITS instead for a filtered, paged lookup.
Export feed of phone calls from ServiceTitan for bulk sync; each record carries an active flag. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_CALLS instead for a filtered, paged lookup.
Export customer contact entries from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch. Use LIST_CUSTOMER_CONTACTS for a filtered lookup across customers, or LIST_CUSTOMER_CONTACTS for one customer.
Export customers from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch; use LIST_CUSTOMERS for filtered lookups.
Export feed of employees from ServiceTitan for bulk sync. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_EMPLOYEES instead for a filtered, paged lookup.
Export equipment systems from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; set include_recent_changes to receive the most recent changes sooner. Use LIST_EQUIPMENT_SYSTEMS instead for a filtered, paged lookup.
Export estimates from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from on the next call; has_more false means the feed is caught up. Use LIST_ESTIMATES for filtered lookups.
Export gross pay items from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_GROSS_PAY_ITEMS instead for a filtered lookup.
Export installed equipment records from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; set include_recent_changes to receive the most recent changes sooner. Use LIST_INSTALLED_EQUIPMENT instead for a filtered, paged lookup.
Export inventory adjustments from ServiceTitan as a continuation feed for bulk sync, with no filters. Pass the returned continue_from token back to get the next batch; use LIST_INVENTORY_ADJUSTMENTS for a filtered lookup.
Export inventory bills from ServiceTitan as a continuation feed for bulk sync: returns active, inactive and deleted records with no filters. Pass the returned continue_from on the next call; use LIST_INVENTORY_BILLS instead for a filtered lookup.
Export vendor returns from ServiceTitan inventory as a continuation feed for bulk sync, with no filters. Pass the returned continue_from token back to get the next batch. Use LIST_INVENTORY_RETURNS instead for a filtered, paged lookup.
Export inventory transfers from ServiceTitan as a continuation feed for bulk sync, with no filters. Pass the returned continue_from token back to get the next batch. Use LIST_INVENTORY_TRANSFERS instead for a filtered, paged lookup.
Export invoice line items from ServiceTitan as a continuation feed for bulk sync: returns active, inactive and deleted records with no filters. Pass the returned continue_from on the next call and keep it to pick up later changes.
Export feed of membership invoice templates from ServiceTitan for bulk sync; the only way to enumerate templates without knowing their ids. The feed takes no filters and each record carries an active flag; pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_INVOICE_TEMPLATES or GET_INVOICE_TEMPLATE when the template ids are already known.
Export invoices from ServiceTitan as a continuation feed for bulk sync: returns active, inactive and deleted records with no filters. Pass the returned continue_from on the next call; use LIST_INVOICES instead for a filtered lookup.
Export ServiceTitan job canceled logs (who canceled which job, when, and why) in bulk as a continuation feed. For the canceled logs of one job use LIST_JOB_CANCELED_LOGS.
Export the status history of all ServiceTitan jobs in bulk as a continuation feed. For one job use Get Job History.
Export notes from all ServiceTitan jobs in bulk as a continuation feed. For the notes of one job use List Job Notes.
Export ServiceTitan jobs in bulk as a continuation feed that includes active, inactive and deleted records. Use it for full or incremental sync; use List Jobs when you need filters.
Export leads from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch; use LIST_LEADS for filtered lookups.
Export location contact entries from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch. Use LIST_LOCATION_CONTACTS for a filtered lookup across locations, or LIST_LOCATION_CONTACTS for one location.
Export locations from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch; use LIST_LOCATIONS for filtered lookups.
Export feed of customer membership status changes from ServiceTitan, across all memberships; each record gives the old and new status. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. For the history of one membership use LIST_MEMBERSHIP_STATUS_CHANGES.
Export feed of membership types from ServiceTitan for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_MEMBERSHIP_TYPES instead for a filtered, paged lookup.
Export feed of customer memberships from ServiceTitan for bulk sync; the feed takes no filters and each record carries an active flag and a status. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_MEMBERSHIPS instead for a filtered, paged lookup.
Export customer payments from ServiceTitan as a continuation feed for bulk sync: returns active, inactive and deleted records with no filters. Pass the returned continue_from on the next call; use LIST_PAYMENTS instead for a filtered lookup.
Export payroll activity codes (earning codes) from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_PAYROLL_ACTIVITY_CODES instead for a filtered lookup.
Export payroll adjustments from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_PAYROLL_ADJUSTMENTS instead for a filtered lookup.
Export payroll job splits (each technician's split of a job) from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_PAYROLL_JOB_SPLITS instead for a filtered lookup.
Export job timesheets (technician dispatch, arrival and completion times on job appointments) from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_PAYROLL_JOB_TIMESHEETS instead for a filtered lookup.
Export employee and technician payroll settings from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_PAYROLL_SETTINGS instead for a filtered lookup.
Export pricebook categories from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; records appear about 15 minutes after a change unless include_recent_changes is true. Use LIST_PRICEBOOK_CATEGORIES instead for a filtered, paged lookup.
Export pricebook equipment items from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; records appear about 15 minutes after a change unless include_recent_changes is true. Use LIST_PRICEBOOK_EQUIPMENT instead for a filtered, paged lookup.
Export pricebook materials from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; records appear about 15 minutes after a change unless include_recent_changes is true. Use LIST_PRICEBOOK_MATERIALS instead for a filtered, paged lookup.
Export pricebook services from ServiceTitan as a continuation feed for bulk sync. Pass the returned continue_from token back to get the next batch; records appear about 15 minutes after a change unless include_recent_changes is true. Use LIST_PRICEBOOK_SERVICES instead for a filtered, paged lookup.
Export notes from all ServiceTitan projects in bulk as a continuation feed. For the notes of one project use List Project Notes.
Export ServiceTitan projects in bulk as a continuation feed that includes active, inactive and deleted records. Use it for full or incremental sync; use List Projects when you need filters.
Export purchase orders from ServiceTitan as a continuation feed for bulk sync; use LIST_PURCHASE_ORDERS when you need filters. Pass the returned continue_from token back to get the next batch.
Export inventory receipts from ServiceTitan as a continuation feed for bulk sync. Pass continue_from from each response to get the next batch. Use LIST_INVENTORY_RECEIPTS for filtered, paged lookup.
Export feed of recurring service events from ServiceTitan for bulk sync; the feed takes no filters, and an event with active false has been deleted. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_RECURRING_SERVICE_EVENTS instead for a filtered, paged lookup.
Export feed of recurring service types from ServiceTitan for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_RECURRING_SERVICE_TYPES instead for a filtered, paged lookup.
Export feed of location recurring services from ServiceTitan for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_RECURRING_SERVICES instead for a filtered, paged lookup.
Export feed of service agreements from ServiceTitan for bulk sync. Returns active, inactive and deleted records; pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_SERVICE_AGREEMENTS instead for a filtered, paged lookup.
Export feed of tag types from ServiceTitan for bulk sync. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_TAG_TYPES instead for a filtered, paged lookup.
Export technician ratings from ServiceTitan as a change feed for bulk sync, one batch per call. Pass the returned continue_from back to get the next batch. Use LIST_TECHNICIAN_RATINGS instead for a filtered, paged lookup.
Export feed of technicians from ServiceTitan for bulk sync. Pass the returned continue_from on the next call, and has_more false means the feed is caught up. Use LIST_TECHNICIANS instead for a filtered, paged lookup.
Export timesheet activities from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_TIMESHEET_ACTIVITIES instead for a filtered lookup.
Export timesheet activity categories from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_TIMESHEET_ACTIVITY_CATEGORIES instead for a filtered lookup.
Export timesheet activity types from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_TIMESHEET_ACTIVITY_TYPES instead for a filtered lookup.
Export timesheet codes from ServiceTitan as a continuation feed for bulk sync; the feed takes no filters and each record carries an active flag. Pass the returned continue_from on the next call; use LIST_TIMESHEET_CODES instead for a filtered lookup.
Get one accounts-payable (vendor) bill in ServiceTitan by its id, including items and expense items. Use LIST_AP_BILLS to find the id.
Get one ServiceTitan job appointment by its ID, including its schedule, arrival window, status and confirmation flag. Use List Appointments to find the ID from a job or project.
Get one ServiceTitan arrival window by its ID.
Get the tenant-wide ServiceTitan arrival window setting: whether a job's default start time is the start or the end of the chosen arrival window.
Get one booking in ServiceTitan by id, across all booking providers. Use GET_PROVIDER_BOOKING when the connection is restricted to a single booking provider tag.
Get one booking provider tag in ServiceTitan by its id.
Get the ServiceTitan business hours: the open time ranges for weekdays, Saturday and Sunday. Returns one object, not a list.
Get one business unit in ServiceTitan by id, including its name, address, email and phone.
Get one phone call in ServiceTitan by id, with the linked job, customer, campaign and agent.
Download the audio recording of one call from ServiceTitan as an audio/mpeg file. Use it for a call whose recording_url is set; the response for a call with no recording is not documented.
Download the voicemail audio left on one call from ServiceTitan as an audio/mpeg file. Use it for a call whose voicemail URL is set; the response for a call with no voicemail is not documented.
Get one marketing campaign in ServiceTitan by id.
Get one marketing campaign category in ServiceTitan by id.
Get one campaign cost record in ServiceTitan by the cost record's id, not the campaign id.
Get the total cost of each marketing campaign in ServiceTitan over a date range. Both from_date and to_date are required; the result is not paged.
Get the cancel reason recorded on each of the given ServiceTitan jobs. Requires job IDs; for the catalogue of available reasons use List Job Cancel Reasons.
Calculate real-time ServiceTitan capacity and technician availability for a time frame, optionally for given business units and a job type. Read-only even though it is a POST; use it before booking a job to find open slots.
Get one contact (a person record with name and title) in ServiceTitan by its GUID. Phone numbers and emails are not included; read them with LIST_CONTACT_METHODS.
Get one contact method of a contact in ServiceTitan. Both ids are GUIDs.
Get one communication preference of a contact method in ServiceTitan by preference name. Names come from LIST_CONTACT_PREFERENCE_TYPES.
Get one customer in ServiceTitan by id, including bill-to address, balance, custom fields and tags.
Get the cost of the email marketing channel in ServiceTitan over a date range. Both from_date and to_date are required.
Get one office employee in ServiceTitan by id, including name, email, phone, role and positions.
Get the payroll settings of one office employee in ServiceTitan. Use GET_TECHNICIAN_PAYROLL_SETTINGS for a technician.
Get one ServiceTitan equipment system by id, including the installed equipment attached to it.
Get one ServiceTitan equipment type by id.
Get one estimate in ServiceTitan by its id, including its status, totals and line items.
Get one estimate template in ServiceTitan by its id, with its items.
Get one expense transaction in ServiceTitan by its id. Use LIST_EXPENSE_TRANSACTIONS to find the id.
Get one ServiceTitan finding by id.
Get one attachment of a ServiceTitan finding, by finding id and attachment id.
Get one general ledger (GL) account in ServiceTitan by its id. Use LIST_GL_ACCOUNTS to find the id.
Get the hold reason recorded on each of the given ServiceTitan jobs and on their appointments. Requires job IDs; for the catalogue of available reasons use List Job Hold Reasons.
Get one ServiceTitan installed equipment record by id.
Get one membership invoice template in ServiceTitan by its id, with its line items and total.
Get one ServiceTitan job by its ID, including customer, location, job type, status and first and last appointment IDs.
Get the booked log of one ServiceTitan job: when it was booked, by whom, and the originally booked appointment start and arrival window.
Get the IDs of the equipment items attached to one ServiceTitan job. Returns IDs only. The spec does not say which equipment ids these are; they are not the equipment system ids of the equipment-system tools, and whether installed-equipment ids (LIST_INSTALLED_EQUIPMENT) or pricebook equipment ids (LIST_PRICEBOOK_EQUIPMENT) are meant is unverified.
Get the history entries of one ServiceTitan job: each event with its type, date, employee and memo. Returns the whole history in one response.
Get one ServiceTitan job type by its ID.
Get one journal entry in ServiceTitan by its id. It returns the entry header; use LIST_JOURNAL_ENTRY_DETAILS or LIST_JOURNAL_ENTRY_SUMMARY for its line amounts.
Get one payroll labor type in ServiceTitan by its id. Use LIST_LABOR_TYPES to find the id.
Get one lead in ServiceTitan by id. A lead is an opportunity to book a job that has not converted yet.
Get one location in ServiceTitan by id. A location is the service address where work is done and belongs to exactly one customer.
Get the id of the preferred technician of a location in ServiceTitan. Returns only the technician id, or null when none is set.
Get one customer membership in ServiceTitan by its id, including status, dates, billing template and payment settings.
Get one membership type in ServiceTitan by its id. The spec gives this operation no include flags and does not say whether duration_billing, discounts, recurring_services and tag_type_ids are filled; null means not loaded. LIST_MEMBERSHIP_TYPES with ids and the include_ flags returns them.
Get one ServiceTitan non-job appointment by its ID. A non-job appointment blocks a technician's time for something that is not customer work, such as training or time off.
Get one payment term (for example net 30) in ServiceTitan by its id. Payment terms are read-only through the API.
Get one payment type in ServiceTitan by its id. Use LIST_PAYMENT_TYPES to find the id.
Get one payroll activity code (earning code) in ServiceTitan by its id. Use LIST_PAYROLL_ACTIVITY_CODES to find the id.
Get one payroll adjustment in ServiceTitan by its id. employee_type is required and must match the adjustment's owner (Technician or Employee).
Get one ServiceTitan pricebook category by id, including its subcategories.
Get one discount or fee from the ServiceTitan pricebook by id.
Get one equipment item from the ServiceTitan pricebook catalog by id.
Get one material from the ServiceTitan pricebook by id.
Get one material markup tier from the ServiceTitan pricebook by id.
Get one service from the ServiceTitan pricebook by id, including its linked materials and equipment.
Get one ServiceTitan project by its ID, including status, customer, location, managers and key dates.
Get one daily log of a ServiceTitan project by its ID, with health, section notes, summaries and the attachment list.
Get one ServiceTitan project status definition by its ID. This is the status catalogue entry, not the status of a project.
Get one ServiceTitan project sub status definition by its ID.
Get one ServiceTitan project type by its ID.
Get one proposal template in ServiceTitan by its id, with its estimate assignments.
Get one booking in ServiceTitan that belongs to a given booking provider. Works only when the connection was granted the booking provider tag passed as booking_provider_id.
Get one ServiceTitan purchase order by id, including its items and current status.
Get one ServiceTitan purchase order markup tier by id.
Get one location recurring service in ServiceTitan by its id, including its recurrence schedule and invoice template ids.
Get one recurring service type in ServiceTitan by its id.
Get one remittance vendor in ServiceTitan by its id. Use LIST_REMITTANCE_VENDORS to find the id.
Get a report's definition in ServiceTitan: the input parameters it expects and the fields it returns. Read it before requesting data, because report owners can change the definition.
Run a report in ServiceTitan and return one page of rows with the column headers. Rate limit: 1 call of the same report per minute per tenant, so ask for a large page_size (up to 25000) rather than many small pages; for slow reports use START_REPORT_DATA_QUERY and poll GET_REPORT_DATA_QUERY_RESULT.
Poll a long-running report data query in ServiceTitan by its query_token. Returns the rows when the query has finished, or a status of NotStarted or InProgress when it has not, in which case wait and call again.
Get performance counts for one Scheduling Pro router in ServiceTitan over a time window: sessions opened and interacted with, split by scheduler. Both window bounds are required.
Get performance metrics for one Scheduling Pro scheduler in ServiceTitan over a time window, such as sessions, completion rates and jobs booked. Both window bounds are required.
Get one service agreement in ServiceTitan by id, with its price, dates, status and terms.
Get one task in ServiceTitan Task Management by id, with its comments and attachments. Set include_subtasks to true to also return its subtasks.
Get the reference data needed to create tasks in ServiceTitan: employees, business units, task types, sources, resolutions, priorities and statuses. Call it first to get the ids the create task tool requires.
Get one ServiceTitan dispatch team by its ID.
Get one technician in ServiceTitan by id, including name, contact details, home address, zones and license type.
Get the payroll settings of one technician in ServiceTitan. Use GET_EMPLOYEE_PAYROLL_SETTINGS for an office employee.
Get one ServiceTitan technician shift by its ID.
Get one ServiceTitan technician skill by its ID, which is a string of the form {technicianId}_{skillId}.
Get the ServiceTitan tracking URL for one technician on one appointment, which shows the technician's progress toward the customer. Both the technician and appointment IDs are required.
Get one timesheet activity in ServiceTitan by its id. Use LIST_TIMESHEET_ACTIVITIES to find the id.
Get one timesheet activity category in ServiceTitan by its id. Use LIST_TIMESHEET_ACTIVITY_CATEGORIES to find the id.
Get one timesheet activity type in ServiceTitan by its id. Use LIST_TIMESHEET_ACTIVITY_TYPES to find the id.
Get one timesheet code in ServiceTitan by its id. Use LIST_TIMESHEET_CODES to find the id.
Get one ServiceTitan inventory vendor by id, including contact details, tax rate, and delivery option.
Get the ids of the tenant's default general ledger accounts in ServiceTitan: credit card payable and uncategorized expense. Each id is null when that default account is not configured.
Get one ServiceTitan dispatch zone by its ID, including its zip codes, cities, service days, business units and technicians.
Put a ServiceTitan job appointment on hold with a hold reason and memo. Get the reason ID from List Job Hold Reasons.
Record SMS marketing opt-ins in ServiceTitan for phone numbers whose consent was collected outside it. Send only numbers whose owners agreed to receive text messages.
List ad performance rows from ServiceTitan Marketing Ads for a time window, segmented by campaign, ad group or keyword, one page per call. from_utc, to_utc and segmentation_type are required.
List the custom field type definitions available for AP bills in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_AP_BILL_CUSTOM_FIELDS.
List accounts-payable (vendor) bills in ServiceTitan with their line items, one page per call. Filter by bill number, status, sync status, source, cost or dates; bill_type defaults to Procurement, so pass ApBill to see standalone AP bills.
List the custom field type definitions available for AP credits in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_AP_CREDIT_CUSTOM_FIELDS.
List accounts-payable credits (vendor credits) in ServiceTitan, one page per call. Filter by ids, sync status, or created or modified dates.
List the custom field type definitions available for AP payments in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_AP_PAYMENT_CUSTOM_FIELDS.
List accounts-payable payments (payments made to vendors) in ServiceTitan, one page per call. These are outgoing vendor payments; use LIST_PAYMENTS for payments received from customers.
List technician-to-appointment assignments in ServiceTitan, one page per call, filtered by appointment, job, technician or appointment start range. Use it to see who is assigned to an appointment.
List ServiceTitan job appointments, one page per call, filtered by job, project, technician, customer, status or start/modified date ranges. Use this to find all appointments of a job or project.
List the arrival windows configured in ServiceTitan, one page per call. An arrival window is a time range, per business unit, offered to customers when booking.
List leads with their marketing attribution in ServiceTitan for a time window, one page per call. from_utc and to_utc are required.
List the transactions (payments and journal entries) that make up one bank deposit in ServiceTitan, one page per call. Use LIST_BANK_DEPOSITS to find the deposit id.
List bank deposits in ServiceTitan, one page per call. Filter by deposit date, review status, deposit status, sync status or gross amount.
List the contact entries (phone, email, fax) on one booking in ServiceTitan, one page per call. This is the tenant-wide path; it needs a connection with no booking provider restriction. Use LIST_PROVIDER_BOOKING_CONTACTS when the connection is restricted to a single booking provider tag.
List booking provider tags in ServiceTitan, one page per call. Use it to find the tag id that the provider-scoped booking tools take as booking_provider_id.
List bookings in ServiceTitan across all booking providers, one page per call. Use LIST_PROVIDER_BOOKINGS when the connection is restricted to a single booking provider tag.
List the child items under one item of a company-level budget code segment in ServiceTitan, one page per call.
List the items of one company-level budget code segment in ServiceTitan, one page per call. Set include_children to get nested child items.
List the company-level budget code segments of the ServiceTitan work breakdown structure. For the segments of one project use List Project Budget Code Segments.
List company-level ServiceTitan budget codes, one page per call, optionally filtered by budget code, segment or segment item IDs.
List business units in ServiceTitan, the divisions of the company that revenue and work are tracked and reported under.
List call reasons in ServiceTitan, one page per call. Use it to find the reason id needed to dismiss a lead or booking or to create a lead.
List phone calls recorded in ServiceTitan, inbound and outbound, filtered by campaign, agent, phone number, minimum duration, tag or created/modified time.
List marketing campaign categories in ServiceTitan, one page per call. Categories group campaigns; they are not pricebook categories.
List monthly campaign cost records in ServiceTitan across all campaigns, one page per call, filtered by year, month or campaign. Each record holds a daily cost for one campaign and month.
List the monthly cost records of one marketing campaign in ServiceTitan, one page per call. Use LIST_CAMPAIGN_COSTS to read costs across all campaigns.
List marketing campaigns in ServiceTitan, one page per call, filtered by name, tracking phone number, ids or dates. Only active campaigns are returned unless active is set to False or Any.
List all capacity awareness warnings of ServiceTitan Marketing Ads, which flag campaigns whose business units are near their capacity threshold. Returns everything in one call; it takes no filters.
List client-specific pricing rate sheets in the ServiceTitan pricebook, each with its per-SKU price exceptions. Returns one page per call; request the next page while has_more is true.
List the communication preferences set on one contact method in ServiceTitan. Returns the full list in one call; it is not paged.
List contact methods across ServiceTitan contacts, one page per call. Pass contact_id for one contact, or filter across contacts by value, type, reference id, or date.
List the communication preference types that can be set on a contact method in ServiceTitan, with each one's name and data type. Returns the full list in one call; it is not paged.
List the customers, locations and bookings a contact is linked to in ServiceTitan, one page per call.
List contacts (person records with name and title) in ServiceTitan, one page per call. These are the GUID-keyed contacts; for the phone and email entries on a customer use LIST_CUSTOMER_CONTACTS.
List the contacts in ServiceTitan attached to one relationship id, one page per call. Relationship ids come from LIST_CONTACT_RELATIONSHIPS.
List the custom field type definitions available for credit memos in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_CREDIT_MEMO_CUSTOM_FIELDS.
List credit memo line items across credit memos in ServiceTitan, one page per call. Pass credit_memo_ids with one ID for a single credit memo or a provider-formatted multi-ID string for several; without it, items of every credit memo are returned.
List customer credit memos in ServiceTitan, one page per call. Filter by the invoices they were applied to, dates, status, batch, business unit, total or balance; filtering by custom field is not supported.
List contact entries for one or more ServiceTitan customers, or by modified-date range, one page per call. Pass one customer ID for the single-customer case. A location's contacts are separate records; use LIST_LOCATION_CONTACTS for them.
List the custom field types defined for customers in ServiceTitan, one page per call. Use it to find the type_id needed when setting custom_fields on a customer.
List the notes on one customer in ServiceTitan, one page per call.
List customers in ServiceTitan, one page per call, filtered by name, address, phone, ids or dates. Only active customers are returned unless active is set to False or Any.
List the allowed values of a report parameter's dynamic value set in ServiceTitan, as rows of key and display name. Use it when a report's parameter description gives a dynamic_set_id instead of a fixed list of values.
List the payrolls (pay period records) of one office employee in ServiceTitan, one page per call. Use LIST_TECHNICIAN_PAYROLLS for a technician.
List employees in ServiceTitan, the office staff such as CSRs, dispatchers and bookkeepers, filtered by name, email or user id. Field technicians are a separate resource.
List equipment systems in ServiceTitan, the named groups of installed equipment at a customer location (for example one HVAC system), filtered by location or date range. Returns one page per call; request the next page while has_more is true.
List the equipment types defined in ServiceTitan for classifying installed equipment, filtered by name or date range. Returns one page per call; request the next page while has_more is true.
List estimate line items in ServiceTitan across estimates, or for one estimate when estimate_id is given.
Return the status change history of one estimate in ServiceTitan, each with its UTC timestamp. Not paged.
List estimate templates in ServiceTitan, the reusable sets of pricebook items that estimates and proposal templates are built from.
List estimates in ServiceTitan, filtered by job, project, location, seller, status, total amount, or sold/created/modified time.
List the custom field type definitions available for expense transactions in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_EXPENSE_TRANSACTION_CUSTOM_FIELDS.
List expense transactions (for example card expenses) in ServiceTitan, one page per call. Filter by number, vendor name, employee, status, source system, cost or transaction date; the NotSet expense status is rejected with 400.
List the attachments of one ServiceTitan finding, by finding id. Returns one page per call; request the next page while has_more is true.
List findings in ServiceTitan, the issues or observations recorded at customer locations, filtered by location, installed equipment, source job, or date range. Returns one page per call; request the next page while has_more is true.
List filled-in form submissions in ServiceTitan with their answers, filtered by form, status, submitter, submission time, or the record the form is attached to (job, customer, location and so on).
List form definitions in ServiceTitan, filtered by name, published status, or whether they have conditional logic or triggers. Returns the forms themselves, not what people filled in.
List general ledger account types in ServiceTitan, one page per call. Use it to find the type names accepted when creating or filtering GL accounts.
List general ledger (GL) accounts in ServiceTitan, one page per call. Filter by ids, names, numbers, types, subtypes, description text, source or active status; only active accounts are returned unless active is set.
List gross pay items (earnings such as timesheet time, bonuses, salary and reimbursements) in ServiceTitan, one page per call. Filter by employee, payroll or date to get the earnings of a pay period. These are computed earnings, not the raw clock times in LIST_PAYROLL_JOB_TIMESHEETS or LIST_NON_JOB_TIMESHEETS.
List equipment installed at ServiceTitan customer locations, filtered by location, equipment system, parent, or date range. For catalog equipment in the pricebook use LIST_PRICEBOOK_EQUIPMENT. Returns one page per call; request the next page while has_more is true.
List the custom field types defined for ServiceTitan installed equipment, with each type's data type and options. The descending flag is required. Returns one page per call; request the next page while has_more is true.
List how ServiceTitan business units map to Sage Intacct locations, departments and classes. Only useful for tenants with the Intacct accounting integration; page, page_size and include_total are all required here.
List inventory adjustments in ServiceTitan, filtered by type, inventory location, business unit, invoice, batch, sync status, or date range. Returns one page per call; request the next page while has_more is true.
List the custom field type definitions available for inventory bills in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_INVENTORY_BILL_CUSTOM_FIELDS.
List inventory bills (vendor bills created from purchase orders and receipts) in ServiceTitan, one page per call. Filter by bill number, purchase order, job number, sync status, cost or dates; bills are read-only apart from custom fields and the exported mark.
List inventory receipts in ServiceTitan, the records of items received against purchase orders, filtered by purchase order, vendor, bill, inventory location, or received date. Returns one page per call; request the next page while has_more is true.
List vendor return types in ServiceTitan inventory; a return type id is required to create a return. The active_only flag is required. Returns one page per call; request the next page while has_more is true.
List vendor returns in ServiceTitan inventory, filtered by vendor, purchase order, job, inventory location, business unit, or return date. Returns one page per call; request the next page while has_more is true.
List ServiceTitan inventory templates with their items, each item carrying a minimum and maximum quantity. Returns one page per call; request the next page while has_more is true.
List inventory transfers in ServiceTitan, the movements of stock between inventory locations, filtered by status, source or destination location, transfer type, job, or date. Returns one page per call; request the next page while has_more is true.
List the custom field type definitions available for invoices in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_INVOICE_CUSTOM_FIELDS.
List the workflow tasks attached to one invoice in ServiceTitan, one page per call. These are invoice tasks created from templates, not Task Management tasks.
Look up membership invoice templates in ServiceTitan by id (ids is required, max 50). It cannot enumerate all templates: to browse every template use EXPORT_INVOICE_TEMPLATES; otherwise take ids from a customer membership's billing template or a recurring service's invoice template.
List customer invoices in ServiceTitan, one page per call; every invoice type (job, membership, project, point of sale, adjustment) comes from this one tool. Invoices of every status are returned unless statuses is set; the spec does not document which active state applies when active_state is left out.
List the files attached to one job in ServiceTitan. The spec documents no response schema, so the body is returned unchanged under data.
List the cancel reasons configured in ServiceTitan, one page per call. Use it to pick the reason_id for Cancel Job; it does not say why a given job was canceled.
List the canceled-log entries of one ServiceTitan job, one page per call; each entry records a cancellation of that job.
List the custom field types available for ServiceTitan jobs, one page per call. Use the returned IDs as type_id in the custom_fields of Create Job or Update Job.
List the hold reasons configured in ServiceTitan, one page per call. Use it to pick the reason_id for Hold Appointment; it does not say why a given job is on hold.
List the notes on one ServiceTitan job, one page per call.
List ServiceTitan job types, one page per call, filtered by name, priority, duration or dates. Use it to find the job_type_id for Create Job.
List ServiceTitan jobs, one page per call, filtered by status, customer, location, project, technician, job type or date ranges for creation, modification, completion and appointments.
List journal entries in ServiceTitan, one page per call (page_size max 500). Filter by posting, transaction or export dates, number range, status, sync status, transaction type, names, business units or reference numbers or custom fields.
List one journal entry's amounts in ServiceTitan aggregated by GL account, business unit, transaction and pricebook item, one page per call (page_size max 500). Use LIST_JOURNAL_ENTRY_SUMMARY for totals per account only.
List one journal entry's amounts in ServiceTitan aggregated by GL account and business unit, one page per call (page_size max 500). Use LIST_JOURNAL_ENTRY_DETAILS for the finer breakdown by transaction and pricebook item.
List payroll labor types in ServiceTitan, one page per call. A labor type classifies paid time and can map to a labor service in the pricebook.
List the notes on one lead in ServiceTitan, one page per call.
List leads in ServiceTitan, one page per call, filtered by status, customer, dates or the name and phone given on the lead. Use status Open to find leads that still need follow-up.
List contact entries for one or more ServiceTitan locations, or by created or modified date range, one page per call. Pass one location ID for the single-location case. A customer's contacts are separate records; use LIST_CUSTOMER_CONTACTS for them.
List the custom field types defined for locations in ServiceTitan, one page per call. Use it to find the type_id needed when setting custom_fields on a location.
List the hourly labor rates set per customer location and labor type in ServiceTitan, one page per call. Pass location_ids to limit the result to specific locations.
List the notes on one location in ServiceTitan, one page per call.
List locations in ServiceTitan, one page per call, filtered by customer, name, address, ids or dates. Only active locations are returned unless active is set to False or Any.
List the custom field types defined for customer memberships in ServiceTitan. Returns field definitions (id, name, data type), not the values stored on a membership.
Return the status change history of one customer membership in ServiceTitan. Not paged: every change for that membership comes back in one call.
List the discounts granted by one membership type in ServiceTitan. Not paged.
List the duration and billing options of one membership type in ServiceTitan, with their prices. Each option's id is the duration_billing_id needed to sell a membership. Not paged.
List the recurring services included in one membership type in ServiceTitan. Not paged.
List membership types in ServiceTitan, the templates that memberships are sold from. Discounts, duration/billing options, recurring services and tags are left out unless the matching include_ flag is true.
List customer memberships in ServiceTitan, filtered by customer, status, duration, billing frequency or created/modified time. A customer membership is one customer's instance of a membership type; use the membership types tools for the templates themselves.
List ServiceTitan non-job appointments (technician time blocked for non-customer activities), one page per call, filtered by technician, start range or timesheet code. For customer job visits use List Appointments.
List non-job timesheets (time recorded against timesheet codes) in ServiceTitan, one page per call. Filter by employee_id, employee_type, dates or active status. Covers time not on a job; for dispatch-to-done time on job appointments use LIST_PAYROLL_JOB_TIMESHEETS.
Return every phone number that has opted out of contact in ServiceTitan, with its opt-out type. Not paged; numbers come back in E.164 format.
List the custom field type definitions available for payments in ServiceTitan, one page per call. Use it to find valid custom field names before setting them with UPDATE_PAYMENT_CUSTOM_FIELDS.
List payment terms (the due-date rules attached to invoices and bills) in ServiceTitan, one page per call. Payment terms are read-only through the API.
List payment types (for example cash, check, credit card) in ServiceTitan, one page per call. Use it to find the type_id needed by UPDATE_PAYMENT.
List payments received from customers in ServiceTitan, one page per call. Filter by the invoices they were applied to, customer, deposit, paid date, status or total; use LIST_AP_PAYMENTS for payments made to vendors.
List payroll activity codes (earning codes that map earnings to a payroll processor's codes) in ServiceTitan, one page per call. These are not timesheet activities; use LIST_TIMESHEET_ACTIVITIES for recorded time.
List payroll adjustments (manually entered earnings or deductions) in ServiceTitan, one page per call. Filter by employee ids or posted date.
List payroll job splits across jobs in ServiceTitan, one page per call: one record per technician and job with that technician's split. Pass job_ids with one ID for a single job or a provider-formatted multi-ID string for several jobs.
List technician job timesheets across jobs in ServiceTitan (dispatch, arrive, cancel and done times), one page per call. job_ids limits the result to given jobs, but its format is not documented; use LIST_PAYROLL_JOB_TIMESHEETS_FOR_JOB for one job. Covers time on job appointments only; time on non-job codes (meetings, training) is in LIST_NON_JOB_TIMESHEETS, and paid earnings are in LIST_GROSS_PAY_ITEMS.
List the technician timesheets recorded on one job in ServiceTitan (dispatch, arrive, cancel and done times), one page per call. Use LIST_PAYROLL_JOB_TIMESHEETS to read across jobs.
List the payroll settings (hourly rate, hire date, manager, external payroll id) of employees and technicians in ServiceTitan, one page per call. Filter by employee type or active status.
List payrolls (one employee's or technician's pay period record) across all staff in ServiceTitan, one page per call. Filter by employee type, period dates, approval date or status.
List pricebook categories in ServiceTitan, optionally only Services or Materials categories. Each category carries its nested subcategories. Returns one page per call; request the next page while has_more is true.
List discounts and fees in the ServiceTitan pricebook, with optional search text and category filters. Returns one page per call; request the next page while has_more is true.
List equipment items in the ServiceTitan pricebook (sellable catalog entries such as furnaces), with optional search text and category filters. For equipment installed at a customer location use LIST_INSTALLED_EQUIPMENT. Returns one page per call; request the next page while has_more is true.
List the cost types that can be assigned to materials in the ServiceTitan pricebook. Takes no inputs and returns a single page.
List the material markup tiers in the ServiceTitan pricebook, each a from/to range with the markup percent applied to it. Returns one page per call; request the next page while has_more is true.
List materials in the ServiceTitan pricebook, with optional search text, category, and cost type filters. Returns one page per call; request the next page while has_more is true.
List services in the ServiceTitan pricebook, with optional search text and category filters. Set calculate_prices to apply current dynamic pricing rules. Returns one page per call; request the next page while has_more is true.
List the child items under one item of a budget code segment within a ServiceTitan project, one page per call.
List the items of one budget code segment within a ServiceTitan project, one page per call.
List the budget code segments of one ServiceTitan project's work breakdown structure.
List the budget codes of one ServiceTitan project, one page per call, optionally filtered by budget code, segment or segment item IDs.
List the custom field types available for ServiceTitan projects, one page per call. Use the returned IDs as type_id in the custom_fields of Create Project or Update Project.
List the daily logs of one ServiceTitan project, one page per call, optionally limited to a date range. Returns summaries; use Get Project Daily Log for the full log.
List the notes on one ServiceTitan project, one page per call.
List the project statuses configured in ServiceTitan, one page per call. Use the IDs as status_id on a project.
List the project sub statuses configured in ServiceTitan, one page per call, optionally for one parent status.
List the project types configured in ServiceTitan, one page per call. Use the IDs as project_type_id on a project.
List ServiceTitan projects, one page per call, filtered by customer, location, status, job, technician, manager or date ranges. Use job_id to find the project a job belongs to.
List proposal templates in ServiceTitan, which map the options of a proposal type to estimate templates.
List proposal types in ServiceTitan with their options. Use it to get the proposal_type_id and proposal_type_option_id values that proposal templates need. Not paged.
List the contact entries on one booking in ServiceTitan that belongs to a given booking provider, one page per call. Works only when the connection was granted the booking provider tag passed as booking_provider_id. Use LIST_BOOKING_CONTACTS when the connection has no booking provider restriction.
List the bookings in ServiceTitan that belong to one booking provider, one page per call. Works only when the connection was granted the booking provider tag passed as booking_provider_id.
List the purchase order markup tiers in ServiceTitan, each a from/to range with the markup percent applied to it. Returns one page per call; request the next page while has_more is true.
List purchase order requests in ServiceTitan, filtered by request status, number, job, project, technician, or date range. Returns one page per call; request the next page while has_more is true.
List purchase order types in ServiceTitan; a type id is required to create a purchase order. Returns one page per call; request the next page while has_more is true.
List purchase orders in ServiceTitan, filtered by status, number, job, project, technician, inventory location, or date range. Returns one page per call; request the next page while has_more is true.
List recurring service events in ServiceTitan, the visits generated from a location's recurring services, filtered by location, job, follow-up status or created/modified time.
List recurring service types in ServiceTitan, the templates that location recurring services are created from, filtered by membership type, recurrence type or duration type.
List location recurring services in ServiceTitan (a recurring service type applied to one location), filtered by membership, location or created/modified time. Technician ids are left out unless include_technicians is true.
List remittance vendors (the pay-to parties for vendor payments) in ServiceTitan, one page per call. These are not the inventory vendors that purchase orders are placed with.
List the report categories in ServiceTitan. Start here: every other report tool needs a category id.
List the reports in one report category in ServiceTitan, with id, name and description.
List customer reviews collected by ServiceTitan Marketing Reputation, one page per call, filtered by date, rating, source, technician, campaign or location. Several filters take numeric codes whose meanings the spec does not document.
List the customer booking sessions that went through one Scheduling Pro router in ServiceTitan, with outcome, customer details and any job or booking created.
List the customer booking sessions of one Scheduling Pro scheduler in ServiceTitan, with customer details, outcome and any job or booking created.
List the online booking schedulers set up in ServiceTitan Scheduling Pro, with their status and default flag. Each record also carries data_api_key, the scheduler's web-install key; it is sensitive, so do not repeat it to the user unless asked.
List the custom field types defined for service agreements in ServiceTitan. Returns field definitions, not the values stored on an agreement.
List service agreements in ServiceTitan, the maintenance contracts for commercial customers, filtered by customer, business unit, status or created/modified time. Read-only: the API has no way to create or change an agreement.
List tag types in ServiceTitan, the labels that can be put on customers, jobs, locations and other records. The tag type ids are what other tools take as tag_type_ids.
List office tasks in ServiceTitan Task Management, one page per call, filtered by status, priority, assignee, customer, job, project or dates. Set include_subtasks to true to also return each task's subtasks. These are Task Management tasks, not the invoice workflow tasks of CREATE_INVOICE_TASK / LIST_INVOICE_TASKS.
List tax zones and their tax rates in ServiceTitan, one page per call; with no filter every active tax zone is returned. Tax zones are read-only through the API.
List ServiceTitan dispatch teams, one page per call. Inactive teams are left out unless include_inactive is true.
List the payrolls (pay period records) of one technician in ServiceTitan, one page per call. Use LIST_EMPLOYEE_PAYROLLS for an office employee.
List technician ratings in ServiceTitan, one page per call, filtered by technician, job or dates. Each rating is tied to one technician and one job.
List ServiceTitan technician shifts, one page per call, filtered by technician, shift type (Normal, OnCall, TimeOff), time range, or text in the title or note.
List ServiceTitan technician skills, one page per call, optionally for one technician. Each entry is one skill held by one technician.
List technicians in ServiceTitan, the field staff who work jobs, filtered by name or user id. Office employees are a separate resource.
List timesheet activities (blocks of time recorded against an activity type, from the Timesheets API) in ServiceTitan, one page per call. It filters only by job, project, active status and created or modified dates, not by employee or work date; for job dispatch/arrive/done times use LIST_PAYROLL_JOB_TIMESHEETS, for time booked to payroll timesheet codes use LIST_NON_JOB_TIMESHEETS, and for paid earnings use LIST_GROSS_PAY_ITEMS.
List timesheet activity categories, the groups that activity types belong to, in ServiceTitan, one page per call.
List timesheet activity types in ServiceTitan, one page per call. Use it to find the activity_type_id needed to create a timesheet activity.
List timesheet codes in ServiceTitan, one page per call. Each code says which employee type it applies to and whether it is unpaid, paid, clock in/out or paid time off. Codes are the categories used by LIST_NON_JOB_TIMESHEETS; they are not payroll activity codes (LIST_PAYROLL_ACTIVITY_CODES).
List trucks in ServiceTitan inventory, the vehicle inventory locations assigned to technicians. Returns one page per call; request the next page while has_more is true.
List user roles in ServiceTitan, the permission sets assigned to employees and technicians. Use it to get the role_id needed to create an employee or technician.
List historical driving events for FleetPro vehicles in ServiceTitan, by VIN and time window. Only data older than 7 days is available, the window may span at most 24 hours, at most 50 VINs per call, and results are capped at 10,000 records.
List historical GPS positions for FleetPro vehicles in ServiceTitan, by VIN and time window. Only data older than 7 days is available, the window may span at most 24 hours, at most 50 VINs per call, and results are capped at 10,000 records.
List every FleetPro vehicle in ServiceTitan with its VIN, name and driver. Use it to get the VINs that the vehicle GPS and event tools filter by. Not paged.
List the custom field types defined for ServiceTitan vendors, with each type's data type and options. Use it to find valid custom field names before writing vendor custom fields. Returns one page per call; request the next page while has_more is true.
List inventory vendors (suppliers) in ServiceTitan, filtered by name, ids, active status, external data, or date range. Returns one page per call; request the next page while has_more is true. For the pay-to parties of vendor payments use LIST_REMITTANCE_VENDORS.
List warehouses in ServiceTitan inventory; warehouse ids are used as inventory locations on purchase orders, returns, and trucks. Returns one page per call; request the next page while has_more is true.
List ServiceTitan dispatch zones, one page per call. A zone groups zip codes, cities or territories and the business units and technicians that serve them.
Check the opt-out status of specific phone numbers in ServiceTitan. Numbers with no opt-out are left out of the result, and the whole request fails if any number cannot be parsed.
Mark one or more AP bills as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. No operation to undo the mark is documented.
Mark one or more AP credits as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. No operation to undo the mark is documented.
Mark one or more AP payments as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. No operation to undo the mark is documented.
Mark one or more bank deposits as exported to an external accounting system in ServiceTitan. Unlike the other mark-as-exported tools, the documented response has no body, so there is no per-id result to check. ServiceTitan documents no operation to undo the exported mark.
Mark one or more credit memos as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. No operation to undo the mark is documented.
Mark one or more expense transactions as exported in ServiceTitan. Only an expense in the Posted state moves to Exported; an id that is missing or not Posted comes back as a failure row while the call itself still succeeds. ServiceTitan documents no operation to undo a successful exported mark.
Mark one or more inventory bills as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. ServiceTitan documents no operation to undo a successful exported mark.
Mark one or more invoices as exported to an external accounting system in ServiceTitan. Returns one result row per id with a success flag and error message, so check each row: a failed id does not fail the call. No operation to undo the mark is documented.
Mark a recurring service event complete in ServiceTitan by linking it to a job. It also copies the recurring service's invoice template items onto that job's invoice.
Mark a recurring service event incomplete in ServiceTitan by unlinking it from a job. It also deletes the invoice items that were copied onto the job's invoice when the event was completed.
Check budget code strings against the company-level ServiceTitan budget codes; each input code comes back with a validity flag and the budget codes it matches. Read-only.
Check budget code strings against the budget codes of one ServiceTitan project; each input code comes back with a validity flag and the budget codes it matches. Read-only.
Reject a ServiceTitan purchase order request by its request id, with a required rejection reason. Takes the request id from LIST_PURCHASE_ORDER_REQUESTS, not a purchase order id. No way to withdraw a rejection is documented.
Remove the confirmation from a ServiceTitan job appointment, returning it to unconfirmed.
Remove the hold from a ServiceTitan job appointment that was put on hold.
Remove one tag type from one customer in ServiceTitan. The tag type itself is kept. Use REMOVE_TAGS_FROM_CUSTOMERS for several customers or tags at once.
Detach installed equipment from a ServiceTitan equipment system, by system id and a list of installed equipment ids. The equipment records themselves are not deleted.
Undo the cancellation of a ServiceTitan job that was canceled.
Remove one tag type from one location in ServiceTitan. The tag type itself is kept.
Remove one or more tag types from several customers in ServiceTitan in one call. Every tag type listed is removed from every customer listed. Use REMOVE_CUSTOMER_TAG for a single customer and tag.
Replace a contact in ServiceTitan with the values sent. is_archived is required, and name, title or reference_id left out are cleared; use UPDATE_CONTACT to change only some fields.
Replace a contact method of a contact in ServiceTitan with the values sent. type and value are required, and optional fields left out are cleared; use UPDATE_CONTACT_METHOD to change only some fields.
Replace an external journal entry in ServiceTitan, including all of its lines. Only entries created through the API (external) can be replaced, and lines are overwritten: send every line to keep, because any line left out is deleted.
Move a ServiceTitan job appointment to a new start and end time, and optionally a new arrival window. It changes only the schedule, not the assigned technicians.
Mark an estimate as sold in ServiceTitan and credit the sale to a technician. sold_by_id must be a managed technician, and an estimate sold this way is set to 'perform work later', so the job still has to be booked.
Send an account invitation to a ServiceTitan employee. The sent invitation cannot be recalled.
Send a password reset link to a ServiceTitan employee. The sent link cannot be recalled.
Send an account invitation to a ServiceTitan technician. The sent invitation cannot be recalled.
Send a password reset link to a ServiceTitan technician. The sent link cannot be recalled.
Set the work-performed summary for one technician on a ServiceTitan job appointment. Private preview: available to specific accounts only, so expect an error on tenants without it.
Activate or deactivate a ServiceTitan arrival window by setting its active flag.
Attach external data (key/value pairs owned by an application GUID) to a business unit in ServiceTitan. It cannot change the unit's name, address or other settings.
Start a long-running report data query in ServiceTitan. If it finishes within about 10 seconds the rows come back directly; otherwise it returns a status and a query_token to poll for the result. Rate limit: 1 call of the same report per minute per tenant. Use GET_REPORT_DATA for fast reports that return within one call.
Submit a lead form to ServiceTitan with a person's name and optional email, phone, address and summary, creating a lead and returning its id. Use CREATE_LEAD when you already have a campaign id and want to set lead fields directly.
Remove one or more technicians from a ServiceTitan job appointment. Returns the appointment.
Revert a sold estimate to unsold in ServiceTitan. It only works when no signature has been collected and the estimate has not been booked out into a job.
Set custom field values on one or more AP bills in ServiceTitan. Each operation names one AP bill id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Set custom field values on one or more AP credits in ServiceTitan. Each operation names one AP credit id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Set custom field values on one or more AP payments in ServiceTitan. Each operation names one AP payment id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Replace the special instructions text on a ServiceTitan job appointment. The new text overwrites the existing instructions.
Replace the start time, duration and business units of a ServiceTitan arrival window. All three fields are required. To turn a window on or off use Set Arrival Window Active.
Change the tenant-wide ServiceTitan arrival window setting that decides whether a job's default start time is the start or the end of the chosen arrival window. Affects all future bookings.
Update fields of an existing booking in ServiceTitan for a given booking provider. Only the fields sent are changed; if address is sent, all six of its fields are required.
Update one contact entry on a booking in ServiceTitan for a given booking provider. Only the fields sent are changed.
Update the name or description of a booking provider tag in ServiceTitan. Only the fields sent are changed.
Update a call record in ServiceTitan: its call type, reason, excuse memo, tag and linked customer, location, job, campaign or agent. This is a PUT and excuse_memo, reason, customer, location and tag are required on every call; GET_CALL does not return the current location, excuse memo or tag, so have those values ready before calling.
Update a marketing campaign in ServiceTitan. The spec requires name, business_unit_id, category_id and active on every call, so read the campaign first and send its current values for fields you are not changing.
Rename a marketing campaign category in ServiceTitan or change its active flag. name is required on every call, even when only active changes.
Change the daily cost of an existing campaign cost record in ServiceTitan. The campaign, year and month of the record cannot be changed.
Update the per-SKU price exceptions of a client-specific pricing rate sheet in the ServiceTitan pricebook, by rate sheet id. The spec does not say whether the exceptions sent replace the sheet's current list or are merged into it.
Update a contact's name, title, reference id or archived flag in ServiceTitan. The spec lists is_archived as required even though this is a partial update. Use REPLACE_CONTACT to overwrite every field.
Update the value or memo of a contact method in ServiceTitan. Only the fields sent are changed; the type cannot be changed here. Use REPLACE_CONTACT_METHOD to overwrite every field, including type. contact_id is the GUID of a person contact from CREATE_CONTACT or LIST_CONTACTS; to add a phone or email directly to a customer, location or booking use CREATE_CUSTOMER_CONTACT, CREATE_LOCATION_CONTACT or CREATE_BOOKING_CONTACT.
Set the value of one communication preference on a contact method in ServiceTitan. The value is sent as a string whatever the preference's data type.
Update a credit memo's summary, date, business unit or active flag in ServiceTitan; only the fields sent are changed. It cannot change amounts or applications: use ADD_CREDIT_MEMO_SPLITS to apply the memo to invoices.
Set custom field values on one or more credit memos in ServiceTitan. Each operation names one credit memo id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Update fields of a customer in ServiceTitan. Only the fields sent are changed, but custom_fields and tag_type_ids are treated as full lists: send every value you want to keep. To add or remove one tag, use ADD_CUSTOMER_TAG or REMOVE_CUSTOMER_TAG.
Update one contact entry on a customer in ServiceTitan. Only the fields sent are changed; if preferences is sent, all five of its flags are required. This is the customer's own contact list, separate from the GUID person contacts managed with CREATE_CONTACT and CREATE_CONTACT_METHOD.
Update an office employee in ServiceTitan; only the fields sent are changed. business_unit_access_ids is a full replacement, and account_locked sets whether the account is locked.
Update the payroll settings of one office employee in ServiceTitan. hourly_rate is required on every call; the spec does not say whether other omitted fields are kept or cleared.
Update a ServiceTitan equipment system by id. Omitted fields are left unchanged; equipment_ids, when sent, replaces the system's whole equipment list (use ADD_EQUIPMENT_TO_EQUIPMENT_SYSTEM or REMOVE_EQUIPMENT_FROM_EQUIPMENT_SYSTEM to change one item), and an empty list for tags or custom fields clears them.
Rename a ServiceTitan equipment type or change its active status, by id.
Update an estimate in ServiceTitan. This is a PUT with every field optional; whether omitted fields and items are kept or cleared is not documented, so read the estimate first and send the full intended values.
Update an estimate template in ServiceTitan; only the fields sent are changed. Sending items replaces every item on the template, and summary and business_unit_id cannot be cleared once set.
Set custom field values on one or more expense transactions in ServiceTitan. The request is all-or-nothing: an unknown custom field name or expense id returns 422 and no update is saved.
Update a ServiceTitan finding by id: its text fields, urgency level, or archived and active status. The location, equipment, and source job cannot be changed through this tool. Send only the fields to change; the spec marks none of them required.
Update the file name, URL, or media type of an attachment on a ServiceTitan finding. Send only the fields to change; the spec marks none of them required.
Update a general ledger (GL) account in ServiceTitan; only the fields sent are changed. Set active to false to deactivate the account, which is the only form of deletion: an account cannot be removed permanently.
Update a gross pay item in ServiceTitan and return its id. This is a PUT: payroll_id, amount, activity_code_id and date are required on every call, and the spec does not say whether optional fields left out are kept or cleared.
Update fields of a ServiceTitan installed equipment record by id. Send only the fields to change; the spec marks none of them required. List fields such as custom_fields and tag_type_ids are sent as the lists you give.
Update fields of an existing ServiceTitan inventory adjustment by id. Only the fields you send are changed, but items is sent as the full list: lines left out of it are removed.
Set custom field values on one or more ServiceTitan inventory adjustments in a single request. Each operation names the adjustment by objectId and the custom fields to write; the documented response has no body.
Set custom field values on one or more inventory bills in ServiceTitan. Each operation names one inventory bill id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Set custom field values on one or more ServiceTitan inventory receipts in a single request. Each operation names the receipt by objectId and the custom fields to write; the documented response has no body.
Update fields of an existing ServiceTitan vendor return by id. Only the fields you send are changed.
Set custom field values on one or more ServiceTitan inventory returns in a single request. Each operation names the return by objectId and the custom fields to write; the documented response has no body.
Update a ServiceTitan vendor return type by id. Only the fields you send are changed.
Update an existing ServiceTitan inventory transfer by id. The source location, transfer type, and date can only be changed while the transfer is Pending.
Set custom field values on one or more ServiceTitan inventory transfers in a single request. Each operation names the transfer by objectId and the custom fields to write.
Update an invoice's header fields, line items or payment settlement status in ServiceTitan; only the fields sent are changed. Each entry in items needs description and quantity, and the documented response has no body, so read the invoice back with LIST_INVOICES to confirm.
Set custom field values on one or more invoices in ServiceTitan. Each operation names one invoice id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Update one line item on an invoice in ServiceTitan; item_id names the item to change, and description and quantity are required on every call.
Update the name, status, assignee, due date or description of a task on an invoice in ServiceTitan; only the fields sent are changed. task_id is a string id from LIST_INVOICE_TASKS. This is an invoice workflow task, not a Task Management task (CREATE_TASK).
Update a membership invoice template in ServiceTitan; only the top-level fields sent are changed. Whether items replaces or merges with the existing items is not documented, so read the template first and send the full intended item list.
Update fields of a ServiceTitan job; only the fields sent are changed, and job status cannot be changed here. custom_fields and tag_type_ids replace the whole list, so include every value you want to keep.
Update fields of a ServiceTitan job type; only the fields sent are changed. custom_field_type_ids replaces the assigned list unless custom_fields_update_mode is Merge.
Update a journal entry's status (Open or Closed) and custom fields in ServiceTitan. It cannot change lines or amounts; use REPLACE_JOURNAL_ENTRY for that. Custom fields not named are left as they are; a named custom field can be set to null but not deleted.
Record the result of syncing a journal entry to an external accounting system in ServiceTitan by setting its sync status. version_id is required when the status is Synced and must match the entry version that was synced.
Replace a payroll labor type in ServiceTitan. This is a full update: name, code and active are required on every call, and leaving out service_code_id clears the labor type's service code.
Update fields of a lead in ServiceTitan. Only the fields sent are changed; status is not set here, use DISMISS_LEAD to dismiss.
Update fields of a location in ServiceTitan. Only the fields sent are changed, but custom_fields and tag_type_ids replace the full lists, so anything left out of them is removed.
Update one contact entry on a location in ServiceTitan. Only the fields sent are changed; if preferences is sent, all five of its flags are required. This is the location's own contact list, separate from the GUID person contacts managed with CREATE_CONTACT and CREATE_CONTACT_METHOD.
Set the preferred technician of a location in ServiceTitan. Both ids go in the path and no request body is sent; it replaces any technician set before.
Update a customer membership in ServiceTitan; only the fields sent are changed. status takes Active, Suspended, Expired, Canceled or Deleted, and recurring_service_action None deletes the membership's existing recurring services. Explicit null clears to_date, location_id and recurring_location_id.
Replace a ServiceTitan non-job appointment. This is a full update: technician, start, duration and name are required every time.
Update a customer payment record in ServiceTitan: type, paid date, memo, status and how it is split across invoices. type_id and splits are required on every call even though this is a PATCH.
Set custom field values on one or more payments in ServiceTitan. Each operation names one payment id and the fields to set; a field name must already exist as a custom field type, and the documented response has no body.
Set the status (Pending, Posted or Exported) of one or more customer payments in ServiceTitan in one call. The documented response has no body, so read the payments back with LIST_PAYMENTS to confirm.
Update a payroll adjustment in ServiceTitan with a PUT. employee_id and posted_on are required on every call along with the employee_type query value; the spec does not say what happens to optional fields that are left out.
Update fields of a ServiceTitan pricebook category by id and return the updated category. Every body field is optional.
Update fields of a discount or fee in the ServiceTitan pricebook by id. Every body field is optional and only the fields you pass are sent; categories and assets are sent as the lists you give.
Update fields of an equipment item in the ServiceTitan pricebook catalog by id. Every body field is optional and only the fields you pass are sent; list fields such as categories and assets are sent as the lists you give.
Update fields of a material in the ServiceTitan pricebook by id. Every body field is optional; a field left out is not sent.
Replace a material markup tier in the ServiceTitan pricebook by id. This is a full replacement: range_from, range_to, and percent are all required.
Update fields of a service in the ServiceTitan pricebook by id. Send only the fields to change; the spec marks none of them required.
Update fields of a ServiceTitan project; only the fields sent are changed. Whether a list field such as job_ids or project_manager_ids replaces or adds to the current list is not documented, so send the complete list you want the project to have; to add one job prefer Attach Job To Project.
Update a proposal template in ServiceTitan; only the fields sent are changed. Sending estimate_assignments or business_unit_ids replaces the whole list, and an empty list removes them all.
Update fields of an existing ServiceTitan purchase order by id; every body field is optional. When items is sent it replaces the item list: every active item left out is marked inactive.
Set custom field values on one or more ServiceTitan purchase orders in a single request. Each operation names the purchase order by objectId and the custom fields to write by name.
Update a ServiceTitan purchase order markup tier by id. All three values (range_from, range_to, percent) are required on every update.
Update a ServiceTitan purchase order type by id. Although sent as a partial update, the documented body requires every setting, so send the full set of values.
Update a location recurring service in ServiceTitan; only the fields sent are changed. Service events are generated from the recurrence fields, but whether a change regenerates events that already exist is not documented.
Update a tag type in ServiceTitan; only the fields sent are changed. Setting active to false deactivates the tag type; there is no delete endpoint.
Update a technician in ServiceTitan; only the fields sent are changed. zone_ids and project_label_ids replace the whole list, and account_locked true locks the technician's account.
Update the payroll settings of one technician in ServiceTitan. hourly_rate is required on every call; the spec does not say whether other omitted fields are kept or cleared, except pay_type, which is left unchanged when omitted.
Update fields of a ServiceTitan technician shift; only the fields sent are changed. The technician and repeat settings cannot be changed here.
Replace a timesheet activity in ServiceTitan. This is a PUT: activity_type_id, start_time, tag_type_ids and active are required on every call, the request has no employee field so the employee cannot be changed, and the spec does not say whether optional fields left out are cleared.
Update a ServiceTitan truck by id: name, memo, warehouse, template, assigned technicians, or active status.
Update fields of an existing ServiceTitan inventory vendor by id; every body field is optional, and fields left out are not sent.
Set custom field values on one or more ServiceTitan vendors in a single request. Each operation names the vendor by objectId and the custom fields to write by name.
Update the external data attached to a ServiceTitan warehouse by id. External data is the only warehouse field this endpoint can change.
Update fields of a ServiceTitan dispatch zone; only the fields sent are changed. Whether a list field such as zips, cities or business_unit_ids replaces or adds to the current list is not documented, so send the complete list you want the zone to have.
Add a line item to an estimate in ServiceTitan, or update an existing one when item_id is given. One item per call. With item_id the existing item is overwritten; whether fields left out are kept or cleared is not documented, and the add-or-update reading comes from the schema and ServiceTitan's guide, not the spec.
Create or update the daily log of a ServiceTitan project for one date. Only the fields and sections sent are changed; if no log exists for that date, one is created.
The ServiceTitan integration connects your Dench AI CRM directly to ServiceTitan, so agents can read and act on your ServiceTitan data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.
585 actions are available for agents to invoke on your behalf. Every call runs through ServiceTitan's own authorization, scoped to the account you connect.
Sign in to your Dench workspace and open Integrations.
Find ServiceTitan and click Connect — you'll authorize access through ServiceTitan's own sign-in flow. No API keys or code required.
Ask an agent to use ServiceTitan in chat, or call it from an automation.
Manage or disconnect the connection any time from workspace settings.
The Dench ServiceTitan integration connects your AI CRM to ServiceTitan, so AI agents can work with your ServiceTitan data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.
The ServiceTitan integration currently exposes 585 actions, including Activate Employee Account, Activate Technician Account, Add Credit Memo Splits, Add Customer Tag, Add Equipment to Equipment System, and Add Location Tag. Agents invoke them on your behalf from chat or from automations.
No. You connect ServiceTitan from your Dench workspace using ServiceTitan's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.
Connections are authorized through ServiceTitan's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the ServiceTitan connection from your workspace settings at any time.