Integration · Field service
Connect Claude & ChatGPT to ServiceTitan
Ask your AI who is booked tomorrow, what a customer owes, or to book a job in ServiceTitan. It can search customers, locations, jobs and appointments, read estimates, invoices and payments, and create leads and jobs. It can also assign technicians, reschedule appointments and add notes, so the office gets answers without clicking through the dispatch board.
Free plan, no credit card. Takes about a minute.
Try asking
“Which appointments are scheduled for tomorrow, and who is assigned?”
The AI searches appointments starting tomorrow and lists the assigned technicians for each one.
“Book a maintenance job for customer 48213 at their main address next Tuesday from 8 to 10.”
It finds the customer's location and the maintenance job type, copies business unit and campaign from a similar job, and creates the job with one appointment.
“Move appointment 90127 to Thursday afternoon.”
It reschedules the appointment to the new start and end time, with a new arrival window if you give one.
What your AI can do
Jobs and dispatch
Search and book jobs, add appointments, reschedule them, assign technicians, add job notes and cancel jobs with a reason.
Customers and leads
Search customers and service locations, read contacts, update customer details, add customer notes and create leads.
Estimates, invoices and payments
Read estimates with line items, search invoices by customer, job or due date, and list payments applied to invoices.
“What does the Hansen household still owe?”
It searches the customer, then their invoices and payments, and shows open balances.
“Show me the estimates on job 1873 and their status.”
It lists the estimates on the job and can open one to show its line items and totals.
“A caller wants a quote on a new water heater. Log it as a lead.”
It creates a lead with a summary, the caller's contact details and a follow-up date, linked to a campaign.
294 tools for ServiceTitan
These tools are switched on when you connect. You can switch any of them off, or require your approval before it runs.
add_customer_noteChanges dataAdd a note (`text`) to a customer (`customer_id`). Set `pin_to_top` to pin it, or `add_to_locations` to copy it to the customer's locations.add_job_appointmentChanges dataAdd another appointment to an existing job (`job_id`) with `start` and `end` in UTC, optional `technician_ids`, arrival window and `special_instructions`.add_job_noteChanges dataAdd a note (`text`) to a job (`job_id`); set `pin_to_top` to pin it.assign_techniciansChanges dataAssign one or more technicians (`technician_ids`) to an appointment (`job_appointment_id`).cancel_jobDeletesCancel a job by `job_id` with a `reason_id` (from list_job_cancel_reasons) and a `memo` explaining why.cancel_project_reasonsDeletesCancel a project (tenant). Destructive action; may require approval. API summary: Gets a list of cancel reasons for specific jobs.create_a_contact_relationshipChanges dataUpdate an existing contact identified by type slug. API summary: Create a contact relationship.create_a_new_non_job_appointmentChanges dataCreate a new project for a tenant. Required: technician id, start, duration or name. Search projects first to avoid duplicates. API summary: Create a new non-job appointment.create_address_contactChanges dataCreate a new contact for a address. Required: type or value. Search contacts first to avoid duplicates. API summary: Creates a contact on the location.create_address_messageChanges dataCreate a new message for a address. Required: text. API summary: Creates a note on the specified location.create_appointment_summaryChanges dataCreate a new summary for a appointment. Required: notes or technician id. API summary: Sets an appointment summary (work performed log) for the specified appointment and technician.create_batchVisible to othersCreate a new batch. Has effects visible outside this system.create_batch_budget_codes_create_budget_codes_partial_batchVisible to othersCreate a new batch. Has effects visible outside this system.create_booking_contactChanges dataCreate a new contact for a booking. Required: type or value. Search contacts first to avoid duplicates. API summary: Creates a contact on the specified booking for a booking provider.create_booking_dismissChanges dataCreate a new dismiss for a booking.create_booking_provider_bookingChanges dataCreate a new booking for a booking provider. Required: source, name, summary, is first time client or external id. API summary: Creates a booking for a booking provider.create_budget_codeChanges dataCreate a new budget code. Required: segment item ids.create_bulk_deleteVisible to othersCreate a new bulk delete. Required: start or end. Has effects visible outside this system. API summary: Deletes the technician shifts specified by the criteria.create_configurationChanges dataCreate a new configuration. Required: configuration.create_contactChanges dataCreate a new contact for a contact. Required: type or value. Search contacts first to avoid duplicates. API summary: Creates a new contact method.create_credit_memo_credit_noteChanges dataCreate a new credit note for a credit memo.create_customer_contactChanges dataCreate a new contact for a customer. Required: type or value. Search contacts first to avoid duplicates. API summary: Creates a contact on the customer.create_daily_log_documentChanges dataCreate a new document for a daily log. API summary: Attaches a file (photo, audio, video, or document) to a daily log.create_gps_provider_gps_pingChanges dataCreate a new gps ping for a gps provider. API summary: Creates new gps ping.create_invoiceChanges dataCreate a new invoice. Required: bill ids. Search invoices first to avoid duplicates. API summary: Marks multiple AP bills as exported, updating their sync status to indicate they have been exported to external systems.create_invoice_ap_credits_mark_as_exportedChanges dataCreate a new invoice. Search invoices first to avoid duplicates. API summary: Marks ap-credits as exported.create_invoice_ap_payments_mark_as_exportedChanges dataCreate a new invoice. Search invoices first to avoid duplicates. API summary: Marks ap-payments as exported.create_invoice_credit_memos_mark_as_exportedChanges dataCreate a new invoice. Search invoices first to avoid duplicates. API summary: mark credit memo as exported. Id = creditMemoId.create_invoice_deposits_mark_as_exportedChanges dataCreate a new invoice. Search invoices first to avoid duplicates. API summary: Marks deposits as exported.create_invoice_expense_transactions_mark_as_exportedChanges dataCreate a new invoice. Required: expense ids. Search invoices first to avoid duplicates. API summary: Marks one or more expense transactions as exported. Each ID is evaluated independently: an eligible (Posted) expense transitions to Exported….create_invoice_inventory_bills_mark_as_exportedChanges dataCreate a new invoice. Required: inventory bill ids. Search invoices first to avoid duplicates. API summary: mark bill as exported. Id = inventoryBillId.create_invoice_invoices_mark_as_exportedChanges dataCreate a new invoice. Search invoices first to avoid duplicates. API summary: mark invoice as exported. Id = invoiceId.create_invoice_taskChanges dataCreate a new task for a invoice. Required: template id. API summary: Creates an invoice task from a template.create_jobChanges dataBook a new job with `customer_id`, `location_id`, `job_type_id`, `business_unit_id`, `campaign_id`, `priority` and at least one entry in `appointments` (`start`/`end` in UTC). Copy business unit and campaign IDs from a similar existing job if you do not know them.create_leadChanges dataCreate a lead with a `summary`, `campaign_id` and either a `follow_up_date` or `call_reason_id`, plus the caller's name, phone, email and address or an existing `customer_id`/`location_id`.create_lead_2Changes dataCreate a new lead for a lead. Required: dismissing reason id. API summary: Dismisses a lead specified by ID.create_lead_follow_upChanges dataCreate a new follow up for a lead. Required: follow up date. API summary: Creates a follow-up.create_lead_leads_submit_lead_formVisible to othersCreate a new lead. Required: name. Has effects visible outside this system. API summary: Submits a lead form.create_lead_messageChanges dataCreate a new message for a lead. Required: text. API summary: Creates a note on the specified lead.create_partialChanges dataCreate a new partial. Required: segments.create_projectChanges dataCreate a new project for a project. Required: equipment ids. Search projects first to avoid duplicates. API summary: Attaches one or more equipment items to the specified job. Returns the updated list of all attached equipment IDs.create_project_message_projects_create_noteChanges dataCreate a new message for a project. Required: text. API summary: Creates a note on the specified project.create_tenant_accountChanges dataCreate a new account for a tenant. API summary: Creates a new General Ledger account.create_tenant_addressChanges dataCreate a new address for a tenant. Required: name, address or customer id. Search addresses first to avoid duplicates. API summary: Creates a new location.create_tenant_arrival_windowChanges dataCreate a new arrival window for a tenant. Required: start, duration or business unit ids.create_tenant_booking_provider_tagChanges dataCreate a new booking provider tag for a tenant. Required: tag name or description. Search booking provider tags first to avoid duplicates. API summary: Create a booking provider tag.create_tenant_capacityChanges dataCreate a new capacity for a tenant. Required: starts on or after, ends on or before or skill based availability.create_tenant_companyChanges dataCreate a new company for a tenant. Required: weekdays, saturday or sunday.create_tenant_contactChanges dataCreate a new contact for a tenant. Search contacts first to avoid duplicates. API summary: Creates a new contact.create_tenant_customerChanges dataCreate a new customer for a tenant. Required: name, locations or address. Search customers first to avoid duplicates. API summary: Creates a New Customer.create_tenant_invoiceChanges dataCreate a new invoice for a tenant. Required: adjustment to id. Search invoices first to avoid duplicates. API summary: create adjustment invoice.create_tenant_journal_entryChanges dataCreate a new journal entry for a tenant. Required: status or version id. Search journal entries first to avoid duplicates. API summary: Creates a new journal entry record, automatically marks it as external.create_tenant_project_job_types_createChanges dataCreate a new project for a tenant. Required: name. Search projects first to avoid duplicates. API summary: Creates a job type.create_tenant_project_projects_createChanges dataCreate a new project for a tenant. Required: location id. Search projects first to avoid duplicates. API summary: Creates a New Project.create_tenant_proposal_templateChanges dataCreate a new proposal template for a tenant. Required: name, proposal type id or estimate assignments. API summary: Creates a new proposal template.create_tenant_quoteChanges dataCreate a new quote for a tenant.create_tenant_quote_estimate_templates_createChanges dataCreate a new quote for a tenant. Required: name, internal name, mode or items. API summary: Creates a new estimate template.create_tenant_teamChanges dataCreate a new team for a tenant. Required: active. API summary: Creates new team.create_tenant_technician_shiftChanges dataCreate a new technician shift for a tenant. Required: technician ids, shift type, title, start, end or repeat type. API summary: Creates new Technician Shift.create_tenant_technician_skillChanges dataCreate a new technician skill for a tenant. Required: technician id, name or active. API summary: Creates a new skill and assigns it to a technician.create_tenant_zoneChanges dataCreate a new zone for a tenant. API summary: Creates a new zone.delete_addressDeletesPermanently delete a address by address type id. Destructive action; may require approval. API summary: Removes a Tag from a Location.delete_address_contactDeletesPermanently delete a contact by contact id. Destructive action; may require approval. API summary: Removes a contact from a location.delete_address_messageDeletesPermanently delete a message by message id. Destructive action; may require approval. API summary: Deletes a note on the specified location.delete_appointment_confirmationsMoves moneyPermanently delete a confirmation by appointment id. Financial or irreversible action; may require approval. API summary: Removes a confirmation to the specified appointment.delete_appointment_holdsMoves moneyPermanently delete a hold by appointment id. Financial or irreversible action; may require approval. API summary: Removes hold from the appointment.delete_booking_contactDeletesPermanently delete a contact by contact id. Destructive action; may require approval. API summary: Removes a contact from a booking for a booking provider.delete_contactDeletesPermanently delete a contact by contact id 2. Destructive action; may require approval. API summary: Deletes a contact method.delete_contact_contacts_delete_contact_relationshipDeletesPermanently delete a contact by type slug. Destructive action; may require approval. API summary: Removes a relationship from a contact.delete_customerDeletesPermanently delete a customer by customer type id. Destructive action; may require approval. API summary: Removes a Tag from a Customer.delete_customer_contactDeletesPermanently delete a contact by contact id. Destructive action; may require approval. API summary: Removes a contact from a customer.delete_customer_messageDeletesPermanently delete a message by message id. Destructive action; may require approval. API summary: Deletes a note on the specified customer.delete_daily_log_documentDeletesPermanently delete a document by document id. Destructive action; may require approval. API summary: Removes an attachment from a daily log.delete_invoice_productDeletesPermanently delete a product by product id. Destructive action; may require approval. API summary: delete invoice item.delete_projectDeletesPermanently delete a project by project id. Destructive action; may require approval. API summary: Detaches a single equipment item from the specified job. Returns 204 No Content on success; 404 if the equipment is not attached to the job.delete_project_cancellationDeletesPermanently delete a project by job id. Destructive action; may require approval. API summary: Removes cancellation from a job.delete_projectsMoves moneyPermanently delete a project by job id. Financial or irreversible action; may require approval. API summary: Detaches one or more equipment items from the specified job. Returns 204 No Content on success.delete_quote_productDeletesPermanently delete a product by product id. Destructive action; may require approval.delete_tenant_appointmentDeletesPermanently delete a appointment by appointment id. Destructive action; may require approval. API summary: Deletes appointment with specified id.delete_tenant_contactDeletesPermanently delete a contact by contact id. Destructive action; may require approval. API summary: Deletes a contact.delete_tenant_journal_entryDeletesPermanently delete a journal entry by journal entry id. Destructive action; may require approval. API summary: Deletes journal entry, supports only for external journal entry records.delete_tenant_projectDeletesPermanently delete a project by project id. Destructive action; may require approval. API summary: Delete non-job appointment.delete_tenant_proposal_templateDeletesPermanently delete a proposal template by proposal template id. Destructive action; may require approval. API summary: Deactivates a proposal template. The template is not deleted and can be reactivated via PATCH.delete_tenant_quoteDeletesPermanently delete a quote by quote id. Destructive action; may require approval. API summary: Deactivates an estimate template.delete_tenant_tagsMoves moneyPermanently delete a tag by tenant. Financial or irreversible action; may require approval. API summary: Remove multiple tags to more than 1 customer.delete_tenant_teamDeletesPermanently delete a team by team id. Destructive action; may require approval. API summary: Delete team.delete_tenant_technician_shiftDeletesPermanently delete a technician shift by technician shift id. Destructive action; may require approval. API summary: Deletes the specified technician shift.delete_tenant_technician_skillDeletesPermanently delete a technician skill by technician skill id. Destructive action; may require approval. API summary: Deletes a technician skill association.delete_tenant_zoneDeletesPermanently delete a zone by zone id. Destructive action; may require approval. API summary: Deletes a zone.detach_appointment_assignment_techniciansChanges dataUnassign a appointment assignment (tenant). API summary: Unassigns the list of technicians from the appointment.export_addressesExport addresses. API summary: Provides export feed for locations.export_appointment_assignmentsExport appointment assignments. API summary: Provides export feed for appointment assignments.export_appointmentsExport appointments. API summary: Provides export feed for appointments.export_bookingsExport bookings. API summary: Provides export feed for bookings.export_contactsExport contacts. API summary: Provides export feed for customer contacts.export_contacts_export_contacts_locations_contactsExport contacts. API summary: Provides export feed for locations contacts.export_customersExport customers. API summary: Provides export feed for customers.export_invoice_linesExport invoice lines. API summary: Provides export feed for invoice items.export_invoicesExport invoices. API summary: Provides export feed for invoices.export_invoices_export_inventory_billsExport invoices. API summary: Provides export feed for inventory bills.export_job_canceled_logsExport job canceled logs. API summary: Provides export feed for job canceled logs.export_job_historiesExport job histories. API summary: Provides export feed for job status history.export_leadsExport leads. API summary: Provides export feed for leads.export_messagesExport messages. API summary: Provides export feed for job notes.export_messages_export_project_notesExport messages. API summary: Provides export feed for project notes.export_paymentsExport payments. API summary: Provides export feed for payments.export_projectsExport projects. API summary: Provides export feed for jobs.export_projects_export_projectsExport projects. API summary: Provides export feed for projects.export_quotesExport quotes. API summary: Provides export feed for estimates (legacy endpoint).get_appointmentGet one appointment by `appointment_id`, with its start and end times, arrival window, status and job.get_booked_log_for_the_specified_jobList projects for a project. API summary: Get booked log for the specified job.get_booking_provider_bookingGet one booking for a booking provider by booking id. API summary: Gets a booking by ID for a booking provider.get_contactGet one contact for a contact by contact id 2. API summary: Gets a contact method specified by ID.get_contact_contact_preferences_get_contact_method_preferenceGet one contact for a contact by contact name. API summary: Gets a contact preference specified by preference name.get_contact_contacts_get_by_relationship_idGet one contact by contact id. Results are paginated. API summary: Gets a list of contacts for a specified relationship ID.get_customerGet one customer by `customer_id`, including address, balance, type and flags such as do-not-service.get_daily_log_documentGet one document for a daily log by document id. API summary: Gets the content of a daily log attachment.get_estimateGet one estimate by `quote_id` (the estimate ID), with its line items, totals and status.get_jobGet one job by `project_id` (the job ID), with its status, customer, location, job type, business unit, campaign and summary.get_leadGet one lead by `lead_id`, with its summary, contact details, status and follow-up date.get_locationGet one service location by `address_id` (the location ID), including its address and customer.get_payment_statusChanges dataGet the current status of a payment by tenant. API summary: Updates payment status.get_project_daily_logGet one daily log for a project by daily log id. API summary: Gets a daily log by ID.get_tenant_accountGet one account for a tenant by account id. API summary: Retrieves single General Ledger account by account id.get_tenant_arrival_windowGet one arrival window for a tenant by arrival window id.get_tenant_bookingGet one booking for a tenant by booking id. API summary: Gets a booking by ID.get_tenant_booking_provider_tagGet one booking provider tag for a tenant by booking provider tag id. API summary: Gets a single booking provider tag by ID.get_tenant_contactGet one contact for a tenant by contact id. API summary: Gets a contact specified by ID.get_tenant_invoiceGet one invoice for a tenant by bill id. API summary: Returns a single AP bill by its unique identifier with complete details including items, expense items, and associated metadata.get_tenant_journal_entryGet one journal entry for a tenant by journal entry id. API summary: Gets a journal entry by ID.get_tenant_paymentGet one payment for a tenant by expense id. API summary: Returns a single expense transaction by its unique identifier.get_tenant_payment_payment_terms_get_payment_term_modelGet one payment for a tenant by payment id. API summary: Gets Payment Term.get_tenant_payment_payment_types_getGet one payment for a tenant by payment id. API summary: Gets payment type specified by ID.get_tenant_project_job_types_getGet one project for a tenant by project id. API summary: Gets a job type by ID.get_tenant_project_non_job_appointments_getGet one project for a tenant by project id.get_tenant_project_project_statuses_getGet one project for a tenant by project id. API summary: Gets a project status by ID.get_tenant_project_project_sub_statuses_getGet one project for a tenant by project id. API summary: Gets a project sub status by ID.get_tenant_project_project_types_getGet one project for a tenant by project id. API summary: Gets a project type by ID.get_tenant_project_projects_getGet one project for a tenant by project id. API summary: Gets a project by ID.get_tenant_proposal_templateGet one proposal template for a tenant by proposal template id. API summary: Gets a single proposal template by ID.get_tenant_quote_estimate_templates_get_by_idGet one quote for a tenant by quote id. API summary: Gets a single estimate template by ID.get_tenant_supplierGet one supplier for a tenant by supplier id. API summary: Returns a single Remittance Vendor by its unique identifier with complete details including items, expense items, and associated metadata.get_tenant_teamGet one team for a tenant by team id. API summary: Gets a specific team.get_tenant_technician_shiftGet one technician shift for a tenant by technician shift id. API summary: Gets a specific technician shift.get_tenant_technician_skillGet one technician skill for a tenant by technician skill id. API summary: Gets a specific technician skill.get_tenant_zoneGet one zone for a tenant by zone id. API summary: Gets a specific zone.list_accountsList accounts. API summary: Retrieves the tenant's well-known General Ledger accounts (CreditCardPayable, UncategorizedExpense), resolved by the authoritative default-a….list_accounts_gl_accounts_get_type_listList accounts. Optional filters: ids, names, active, created before, created on or after or modified before. Results are paginated. API summary: Retrieves General Ledger account types that match the given criteria.list_address_contactsList contacts for a address. Optional filters: include total. Results are paginated. API summary: Gets a list of contacts for the specified location.list_address_messagesList messages for a address. Optional filters: include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a list of notes on the specified location.list_address_preferredtechniciansList preferredtechnicians for a address.list_appointment_assignmentsList which technicians are assigned to appointments, filtered by `job_id` or `appointment_ids`. Also a way to find technician IDs.list_bank_deposit_paymentsList payments for a bank deposit. Optional filters: include total. Results are paginated. API summary: Gets a paginated list of transactions.list_booking_contactsList contacts for a booking. Optional filters: include total. Results are paginated. API summary: Get a list of contacts for a booking.list_booking_contacts_bookings_get_contact_list2List contacts for a booking. Optional filters: include total. Results are paginated. API summary: Get a list of contacts for a booking for a booking provider.list_booking_provider_bookingsList bookings for a booking provider. Optional filters: ids, include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a list of bookings for a booking provider.list_budget_codesList budget codes. Optional filters: budget code ids, segment ids, segment item ids or include total. Results are paginated.list_configurationsList configurations.list_contactsList contacts for a contact. Optional filters: reference id, type, value, created before, created on or after or modified before. Results are paginated. API summary: Gets a list of contact methods for a specified contact ID.list_contacts_contact_preferences_get_contact_method_preferencesList contacts for a contact. API summary: Gets a list of contact preferences for a specified contact method ID.list_contacts_contacts_get_contact_relationship_listList contacts for a contact. Optional filters: related entity id, type slug, type name, created before, created on or after or include total. Results are paginated. API summary: Gets a list of contact relationships.list_contacts_contacts_get_preference_metadata_listList contacts. API summary: Gets a list of preferences metadata.list_contacts_customers_get_modified_contacts_listList contacts. Optional filters: include total, modified before, modified on or after, customer ids, created before or created on or after. Results are paginated. API summary: Gets a list of contacts for a specific modified-on date range or by their Customer IDs.list_contacts_locations_get_locations_contacts_listList contacts. Optional filters: include total, modified before, modified on or after, location ids, created before or created on or after. Results are paginated. API summary: Gets a list of contacts for a specific ModifiedOn date range, CreatedOn date range or by their Location IDs.list_credit_memo_productsList products for a credit memo. Optional filters: active, business unit ids, created before, created on or after, sort or include total. Results are paginated.list_customer_contactsList the phone numbers and email addresses stored on a customer (`customer_id`).list_customer_messagesList messages for a customer. Optional filters: include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a list of notes for a customer.list_estimatesList estimates, filtered by `job_id`, `job_number`, `project_id`, `location_id`, `status`, sold dates or totals.list_hold_reasonsList hold reasons. Optional filters: ids. API summary: Gets a list of hold reasons for specific jobs.list_inventoriesList inventories. Optional filters: ids, batch id, batch number, bill number, business unit ids or custom field fields. Results are paginated.list_invoice_tasksList tasks for a invoice. Optional filters: include total. Results are paginated.list_job_cancel_reasonsList the job cancel reasons set up in ServiceTitan. Use it to get the `reason_id` for cancelling a job.list_job_notesList the notes on a job (`job_id`).list_job_typesList job types (for example repair or maintenance) with their IDs, filtered by `name` or `active`. Use it to pick the `job_type_id` for a new job.list_journal_entriesList journal entries for a journal entry. Optional filters: include total. Results are paginated. API summary: Gets a list of journal entry items aggregated by account and business unit.list_journal_entries_journal_entries_get_detailsList journal entries for a journal entry. Optional filters: include total. Results are paginated. API summary: Gets a list of journal entry items aggregated by account, business unit, transaction and pricebook item.list_lead_messagesList messages for a lead. Optional filters: include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets notes for a lead.list_leadsList leads, filtered by `status`, `customer_id`, `lead_phone`, `lead_customer_name` or created dates.list_matchesList matches. Optional filters: codes.list_matches_budget_codes_match_project_budget_codesList matches. Optional filters: codes.list_paymentsList customer payments, filtered by `customer_id`, `applied_to_invoice_ids`, paid dates (`paid_on_after`, `paid_on_before`) or totals.list_product_childrenList children for a product. Optional filters: include total or include children. Results are paginated.list_product_children_budget_codes_list_project_segment_item_chiList children for a product. Optional filters: include total or include children. Results are paginated.list_productsList products. Optional filters: estimate id, ids, active, created before, created on or after or modified before. Results are paginated.list_products_credit_memos_get_credit_memos_items_listList products. Optional filters: credit memo ids, active, business unit ids, created before, created on or after or sort. Results are paginated.list_project_budget_codesList budget codes for a project. Optional filters: budget code ids, segment ids, segment item ids or include total. Results are paginated.list_project_daily_logsList daily logs for a project. Optional filters: date from, date to or include total. Results are paginated. API summary: Gets a list of daily logs for the specified project.list_project_messages_projects_get_notesList messages for a project. Optional filters: include total. Results are paginated. API summary: Gets a list of notes on the specified project.list_project_segmentsList segments for a project. Optional filters: include total. Results are paginated.list_projectsList projects for a project. API summary: Gets the list of equipment IDs attached to the specified job.list_projects_jobs_get_historyList projects for a project. API summary: Gets a list of history entries for the specified job.list_projects_jobs_get_job_canceled_logsList projects for a project. Optional filters: include total. Results are paginated. API summary: Get a list of cancelled logs for the specified job.list_quotesList quotes. Optional filters: from or include recent changes. API summary: Provides export feed for estimates.list_quotes_estimates_status_get_estimate_status_changesList quotes for a quote. API summary: Get estimate status change details along with UTC timestamp.list_segment_productsList products for a segment. Optional filters: include total or include children. Results are paginated.list_segment_products_budget_codes_list_project_segment_itemsList products for a segment. Optional filters: include total or include children. Results are paginated.list_segmentsList segments. Optional filters: include total. Results are paginated.list_tenant_accountsList accounts for a tenant. Optional filters: ids, names, numbers, types, subtypes or description. Results are paginated. API summary: Retrieves General Ledger accounts that match the given criteria.list_tenant_ap_creditsList ap credits for a tenant. Optional filters: ids, include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a paginated list of ap credits.list_tenant_arrival_windowsList arrival windows for a tenant. Optional filters: include total, created before, created on or after or active. Results are paginated.list_tenant_bank_depositsList bank deposits for a tenant. Optional filters: ids, modified before, modified on or after, created before, created on or after or deposit date before. Results are paginated. API summary: Gets a paginated list of deposits.list_tenant_bookingsList bookings for a tenant. Optional filters: ids, include total, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a list of bookings.list_tenant_companiesList companies for a tenant. API summary: Gets the business hours.list_tenant_credit_notesList credit notes for a tenant. Optional filters: active, ids, business unit ids, applied to invoice ids, applied to reference number or date before. Results are paginated.list_tenant_invoicesList invoices for a tenant. Optional filters: ids, batch id, batch number, bill number, business unit ids or custom field fields. Results are paginated. API summary: Returns a paginated list of AP bills with detailed item information, filtering capabilities, and associated metadata.list_tenant_invoices_inventory_bills_get_listList invoices for a tenant. Optional filters: ids, batch id, batch number, bill number, business unit ids or custom field fields. Results are paginated.list_tenant_paymentsList payments for a tenant. Optional filters: ids, include total, created before, created on or after, modified before or modified on or after. Results are paginated.list_tenant_payments_payment_terms_get_listList payments for a tenant. Optional filters: ids, created before, created on or after, modified before, modified on or after or include total. Results are paginated. API summary: Gets a list of payment terms.list_tenant_payments_payment_types_get_listList payments for a tenant. Optional filters: ids, active, created before, created on or after or include total. Results are paginated. API summary: Gets a list of payment types.list_tenant_projects_job_hold_reasons_getList projects for a tenant. Optional filters: include total, active, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Gets a list of job hold reasons.list_tenant_projects_non_job_appointments_get_listList projects for a tenant. Optional filters: technician id, starts on or after, starts on or before, timesheet code id, active only or show on technician schedule. Results are paginated. API summary: Gets a list of non-job appointments.list_tenant_projects_project_types_get_listList projects for a tenant. Optional filters: include total. Results are paginated. API summary: Gets a list of project types.list_tenant_proposal_templatesList proposal templates for a tenant. Optional filters: active, proposal type id, modified before, modified on or after or include total. Results are paginated. API summary: Gets a list of proposal templates.list_tenant_proposal_typesList proposal types for a tenant. Optional filters: active.list_tenant_quotes_estimate_templates_getList quotes for a tenant. Optional filters: active, modified before, modified on or after or include total. Results are paginated. API summary: Gets a paginated list of estimate templates.list_tenant_suppliersList suppliers for a tenant. Optional filters: ids, active, created before, created on or after, modified before or modified on or after. Results are paginated. API summary: Returns a paginated list of Remittance Vendors with detailed item information, filtering capabilities, and associated metadata.list_tenant_tax_zonesList tax zones for a tenant. Optional filters: ids, active, include total, created before, created on or after or modified before. Results are paginated. API summary: Get a list of tax zones and their rates.list_tenant_teamsList teams for a tenant. Optional filters: include total, include inactive, created on or after, created before, modified on or after or modified before. Results are paginated. API summary: Gets a list of teams.list_tenant_technician_shiftsList technician shifts for a tenant. Optional filters: starts on or after, ends on or before, shift type, technician id, title contains or note contains. Results are paginated. API summary: Gets a list of technician shifts.list_tenant_technician_skillsList technician skills for a tenant. Optional filters: technician id, include total, active, created before, created on or after or modified before. Results are paginated. API summary: Gets a list of technician skills.list_tenant_technician_trackingsList technician trackings for a tenant. Optional filters: technician id or appointment id.list_tenant_zonesList zones for a tenant. Optional filters: include total, created on or after, created before, modified on or after, modified before or active. Results are paginated. API summary: Gets a list of zones.reschedule_appointmentVisible to othersReschedule an appointment (`appointment_id`) to a new `start`/`end` (UTC), optionally with a new arrival window.search_appointmentsSearch appointments by `job_id`, `customer_id`, `technician_id`, `status` (Scheduled, Dispatched, Working, Hold, Done, Canceled) or start date range (`starts_on_or_after`, `starts_before`).search_contactsSearch contacts by contact id, reference id, type, value, created before or created on or after. Use this to find existing contacts before creating a new contact. Results are paginated. API summary: Search for contact methods.search_customersSearch customers by `name`, `phone`, `street`, `city`, `zip`, `active` or created/modified dates. Use this to find a customer's ID before other lookups.search_customers_2Search customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Gets a list of custom field types available for customers.search_customers_ap_bills_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for AP bills.search_customers_ap_credits_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for AP credits.search_customers_ap_payments_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for AP payments.search_customers_credit_memos_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for credit memos.search_customers_expense_transactions_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of custom-field type definitions available for expense transactions.search_customers_inventory_bills_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for inventory bills.search_customers_invoices_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for invoices.search_customers_jobs_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a list of custom field types available for jobs.search_customers_locations_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Gets a list of custom field types available for locations.search_customers_payments_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a paginated list of filtered custom field types available for payments.search_customers_projects_get_custom_field_typesSearch customers by include total, name, created before, created on or after, modified before or modified on or after. Use this to find existing customers before creating a new customer. Results are paginated. API summary: Returns a list of custom field types available for projects.search_invoicesSearch customer invoices by `customer_id`, `job_id`, `job_number`, `number`, invoice date, due date or balance. Use `ids` to fetch specific invoices.search_jobsSearch jobs by `customer_id`, `location_id`, `number`, `job_status` (Scheduled, Dispatched, InProgress, Hold, Completed, Canceled), `technician_id`, appointment dates or created/completed dates.search_locationsSearch service locations (the addresses where work is done) by `customer_id`, `name`, `street`, `city`, `zip` or `active`. Use it to find the `location_id` needed for new jobs.search_tenant_booking_provider_tagsSearch booking provider tags for a tenant by name, ids, include total, created before, created on or after or modified before. Use this to find existing booking provider tags before creating a new booking provider tag. Results are paginated. API summary: Gets a list of booking provider tags.search_tenant_contactsSearch contacts for a tenant by name, title, reference id, is archived, created before or created on or after. Use this to find existing contacts before creating a new contact. Results are paginated. API summary: Gets a list of contacts.search_tenant_journal_entriesSearch journal entries for a tenant by ids, exported from, exported to, posted from, posted to or modified before. Use this to find existing journal entries before creating a new journal entry. Results are paginated. API summary: Gets a list of journal entries.search_tenant_paymentsSearch payments for a tenant by ids, batch id, batch number, number, job number or vendor name. Use this to find existing payments before creating a new payment. Results are paginated. API summary: Returns a paginated list of expense transactions matching the filter criteria.search_tenant_projects_project_statuses_get_listSearch projects for a tenant by name, ids, include total, sort, created before or created on or after. Use this to find existing projects before creating a new project. Results are paginated. API summary: Gets a list of project statuses.search_tenant_projects_project_sub_statuses_get_listSearch projects for a tenant by name, status id, ids, include total, sort or created before. Use this to find existing projects before creating a new project. Results are paginated. API summary: Gets a list of project sub statuses.search_tenant_projects_projects_get_listSearch projects for a tenant by ids, number, customer id, location id, project type id or invoice id. Use this to find existing projects before creating a new project. Results are paginated. API summary: Gets a list of projects.submit_journal_entryVisible to othersSync a journal entry (journal entry id). Has effects visible outside this system. API summary: Updates a journal entry sync state.update_a_job_typeChanges dataUpdate an existing project identified by project id. Only the fields you pass are changed. API summary: Update a job type.update_a_projectChanges dataUpdate an existing project identified by project id. Only the fields you pass are changed. API summary: Update a project.update_addressChanges dataUpdate an existing address identified by address type id. API summary: Adds a Tag to a Location.update_address_contactChanges dataUpdate an existing contact identified by contact id. Only the fields you pass are changed. API summary: Updates a contact on the location.update_address_preferredtechnicianChanges dataUpdate an existing preferredtechnician identified by preferred technician id.update_an_existing_non_job_appointmentChanges dataUpdate an existing project identified by project id. API summary: Update an existing non-job appointment.update_appointment_confirmationsVisible to othersUpdate an existing confirmation identified by appointment id. Has effects visible outside this system. API summary: Adds a confirmation to the specified appointment.update_appointment_holdsVisible to othersUpdate an existing hold identified by appointment id. Has effects visible outside this system. API summary: Puts the appointment on hold.update_appointment_special_instructionsVisible to othersUpdate an existing special instruction identified by appointment id. Has effects visible outside this system. API summary: Updates special instructions for the specified appointment.update_arrival_window_activatedsVisible to othersUpdate an existing activated identified by arrival window id. Has effects visible outside this system.update_booking_contactChanges dataUpdate an existing contact identified by contact id. Only the fields you pass are changed. API summary: Updates a single booking contact for a booking provider.update_booking_provider_bookingChanges dataUpdate an existing booking identified by booking id. Only the fields you pass are changed. API summary: Updates a booking for a booking provider.update_contactChanges dataUpdate an existing contact identified by contact id 2. Only the fields you pass are changed. API summary: Updates a contact method.update_contact_contact_preferences_update_contact_method_prefereChanges dataUpdate an existing contact identified by contact name. Only the fields you pass are changed. API summary: Updates a contact preference.update_customerChanges dataUpdate a customer by `customer_id`: name, type (residential or commercial), active flag, do-not-mail/do-not-service, payment term or custom fields. Only the fields you pass change.update_customer_2Changes dataUpdate an existing customer identified by customer type id. API summary: Adds a Tag to a Customer.update_customer_contactChanges dataUpdate an existing contact identified by contact id. Only the fields you pass are changed. API summary: Updates a contact on the customer.update_customersVisible to othersUpdate an existing customer identified by tenant. Only the fields you pass are changed. Has effects visible outside this system. API summary: Updates custom field values on multiple AP bills.update_invoice_productsVisible to othersUpdate an existing product identified by invoice id. Only the fields you pass are changed. Has effects visible outside this system. API summary: update invoice items.update_invoice_taskChanges dataUpdate an existing task identified by task id. Only the fields you pass are changed. API summary: Updates an invoice task.update_jobChanges dataUpdate a job by `project_id` (the job ID): summary, priority, job type, business unit, campaign, customer PO or custom fields. Only the fields you pass change.update_projectChanges dataUpdate an existing project identified by job id. API summary: Attaches Job to the specified project.update_project_daily_logChanges dataUpdate an existing daily log identified by date. Only the fields you pass are changed. API summary: Creates or updates a daily log for the specified project/date, applying whichever fields are present in the request body.update_project_projects_detach_jobChanges dataUpdate an existing project identified by job id. API summary: Detaches Job from the project.update_quote_dismissesVisible to othersUpdate an existing dismiss identified by estimate id. Has effects visible outside this system.update_quote_productsVisible to othersUpdate an existing product identified by estimate id. Has effects visible outside this system.update_quote_unsellsVisible to othersUpdate an existing unsell identified by estimate id. Has effects visible outside this system.update_quotesVisible to othersUpdate an existing quote identified by estimate id. Has effects visible outside this system.update_tenant_accountChanges dataUpdate an existing account identified by account id. Only the fields you pass are changed. API summary: Updates General Ledger account.update_tenant_addressChanges dataUpdate an existing address identified by address id. Only the fields you pass are changed. API summary: Updates a location.update_tenant_arrival_windowChanges dataUpdate an existing arrival window identified by arrival window id.update_tenant_booking_provider_tagChanges dataUpdate an existing booking provider tag identified by booking provider tag id. Only the fields you pass are changed. API summary: Update a booking provider tag.update_tenant_contactChanges dataUpdate an existing contact identified by contact id. Only the fields you pass are changed. API summary: Updates a contact.update_tenant_credit_noteChanges dataUpdate an existing credit note identified by credit note id. Only the fields you pass are changed.update_tenant_invoiceChanges dataUpdate an existing invoice identified by invoice id. Only the fields you pass are changed. API summary: update invoice.update_tenant_journal_entryChanges dataUpdate an existing journal entry identified by journal entry id. Only the fields you pass are changed. API summary: Updates a journal entry.update_tenant_leadChanges dataUpdate an existing lead identified by lead id. Only the fields you pass are changed. API summary: Updates a lead.update_tenant_paymentChanges dataUpdate an existing payment identified by payment id. Only the fields you pass are changed. API summary: Updates specified payment in "patch" mode.update_tenant_proposal_templateChanges dataUpdate an existing proposal template identified by proposal template id. Only the fields you pass are changed. API summary: Updates an existing proposal template. Only provided fields are changed; omitted fields are left unchanged.update_tenant_quoteChanges dataUpdate an existing quote identified by quote id.update_tenant_quote_estimate_templates_updateChanges dataUpdate an existing quote identified by quote id. Only the fields you pass are changed. API summary: Updates an existing estimate template.update_tenant_tagsVisible to othersUpdate an existing tag identified by tenant. Has effects visible outside this system. API summary: Add multiple tags to more than 1 customer.update_tenant_technician_shiftChanges dataUpdate an existing technician shift identified by technician shift id. Only the fields you pass are changed. API summary: Updates Technician Shift.update_tenant_technician_skillsVisible to othersUpdate an existing technician skill identified by tenant. Only the fields you pass are changed. Has effects visible outside this system. API summary: Assigns or replaces skills on a technician. Returns the updated status and complete list of all technician skills after the operation.update_tenant_zoneChanges dataUpdate an existing zone identified by zone id. Only the fields you pass are changed. API summary: Updates an existing zone.
Set up in three steps
- 1
Pick the app
Create a free HeyMyApps account and choose ServiceTitan from the app list.
- 2
Paste your key
Enter four values: Client ID, Client Secret, App Key and Tenant ID. As a ServiceTitan admin, sign in at developer.servicetitan.io with 'Login as Production Environment User', create an app with the API scopes you need and copy its App Key. Then in ServiceTitan go to Settings > Integrations > API Application Access, click Connect New App, pick your app and allow access. The Client ID, Client Secret and Tenant ID are shown there.
- 3
Add the link to your AI
You get a personal MCP link. Add it to Claude, ChatGPT or Cursor:
- Click your name, then Settings › Connectors › Add custom connector.
- Paste your link as the Remote MCP server URL.
- Switch it on from the + menu in a chat.
Questions
What can the AI do in ServiceTitan?
The AI can search and read customers, locations, contacts, jobs, appointments, leads, estimates, invoices and payments. It can create leads and jobs, add appointments, assign technicians, reschedule appointments, add notes, update customers and jobs, and cancel a job with a reason if you switch that tool on.
Does the AI see my ServiceTitan credentials?
No. Your ServiceTitan credentials are encrypted at rest and never shown to the AI. After you save them, they are not shown again, not even to you. The AI only sees the results of the tools it calls.
Can I control what the AI is allowed to do?
Yes. You choose which tools are switched on, so you can start read-only. Cancelling a job or rescheduling an appointment affects customers and technicians, and both can require your approval before they run. Every tool call is logged.
Does it work with ChatGPT?
Yes. In ChatGPT go to Settings › Apps & Connectors › Advanced and turn on Developer mode, then add your HeyMyApps link. Developer mode needs a paid ChatGPT plan: Plus, Pro, Business or Enterprise. The same link also works in Claude (Settings › Connectors › Add custom connector), Cursor and other MCP clients.
What does it cost?
HeyMyApps has a free plan with no credit card required. Paid plans bill per completed task. You also need your own ServiceTitan account.
Why does ServiceTitan need four values?
ServiceTitan's API uses an App Key that identifies the app you create in the developer portal, plus a Client ID and Client Secret that are issued when an admin connects that app to your account. The Tenant ID tells the API which ServiceTitan account to use. HeyMyApps exchanges them for short-lived access automatically.
Let your AI work in ServiceTitan today.
Start free. Your key stays encrypted, and you decide what the AI may do.
Connect ServiceTitan freeHeyMyApps is not affiliated with ServiceTitan. Product names are trademarks of their owners.






