Using the ServiceTitan API for Powerful Custom Integrations

by Spencer, Co-Founder / CTO

Introduction

ServiceTitan API for custom integrations and automation

Service-based businesses — from HVAC companies to plumbing and electrical contractors — often face the challenge of optimizing day-to-day operations, enhancing customer experiences, and streamlining workflows. While ServiceTitan (one of the most comprehensive field service management platforms) covers a broad range of needs out-of-the-box, real competitive advantage typically emerges from custom ServiceTitan integrations that unify data across multiple systems and automate repetitive tasks.

One of the best ways to achieve these deeper integrations is through the ServiceTitan API (often also seen as “Service Titan api”). Using this robust application programming interface, organizations can securely exchange data with CRMs, ERPs, specialized reporting tools, marketing platforms, or homegrown applications, transcending the default capabilities of ServiceTitan. Proper planning allows you to harness the ServiceTitan API to connect processes ranging from scheduling to job costing, delivering a transformative impact on both efficiency and user satisfaction.

In this guide, we’ll show you how to get started with the ServiceTitan API, from configuring your credentials and environment to crafting sample requests in Postman. You’ll also learn about a simple integration workflow, best practices, and real-world examples to help you visualize what’s possible. By the end, you’ll be ready to create your own ServiceTitan integrations — or consult experts like Aclarify for specialized support.

Before we dive in, remember that the ServiceTitan API covers functional areas from CRM to Job Planning, Inventory to Memberships, Payroll to Task Management, and more. As you consider a ServiceTitan integration for your business, identify the modules that align best with your operational objectives. Let’s begin.

Key Insight

While this guide delves into certain technical details of the ServiceTitan API, it aims to remain approachable for readers who are tech aware but not deeply technical. We define core terms and explain concepts so you can follow along and adopt the ServiceTitan API confidently in your operations.


Why the ServiceTitan API Matters

ServiceTitan API and why it matters

ServiceTitan has proven itself a leader for service-based companies, offering tools that streamline scheduling, invoicing, marketing, and more. But even a robust platform sometimes falls short of addressing unique organizational needs as businesses grow. This is where the ServiceTitan API (or “Service Titan api”) truly excels.

Expanded Capabilities

By leveraging the ServiceTitan API, you can:

  1. Integrate with Third-Party Software: Seamlessly connect data between ServiceTitan and other solutions (e.g., Salesforce, NetSuite, Power BI).
  2. Build Custom Apps: Create specialized dashboards, internal tools, or client-facing apps that pull or push data into ServiceTitan.
  3. Develop Automation: Trigger email sequences, Slack alerts, or CRM status updates whenever specific data changes in ServiceTitan.

Reduced Silos & Repetitive Tasks

As businesses adopt more software, data silos may arise, leading to manual errors and miscommunication. By allowing real-time or scheduled data exchange among your applications, the ServiceTitan API helps unify workflows, reduce redundant tasks, and cut back on data entry.

Scalability & Adaptability

The ServiceTitan API is built to handle a high volume of requests, supporting businesses that need to scale. As your organization grows, you can expand your ServiceTitan integration — for instance, by introducing new data flows or integrating additional modules — without overhauling your core platforms.

Customized Solutions for a Competitive Edge

ServiceTitan integrations are about more than simple data syncing. You can tailor advanced workflows, from job costing that accounts for specialized services to membership program automations that factor in extra discounts. Because you control the flow of data, you gain deeper insights and a stronger market position.


Overview of ServiceTitan’s API Capabilities

ServiceTitan API capabilities

The ServiceTitan API spans a wide array of endpoints. You can explore and manage nearly every aspect of the platform — from Accounting to CRM, Dispatch to Task Management, Inventory to Payroll, and beyond. For details, consult the official portal (accessed via your ServiceTitan login or at go.servicetitan / goservicetitan), where the authentication flows and endpoint details are meticulously documented.

Below is a snapshot of major functional categories, which can also be found here on the ServiceTitan API documentation site:

  1. Accounting: Invoices, payments, journals, tax zones
  2. CRM: Customers, leads, bookings, tags
  3. Customer Interactions: Technician ratings or feedback
  4. Dispatch: Assignments, capacity, zones, schedules
  5. Equipment Systems: Installed equipment data
  6. Forms: Submitting or retrieving field forms
  7. Inventory: Purchase orders, transfers, trucks, warehouses
  8. Job Booking & Planning: Call reasons, job types, projects
  9. Marketing & Ads: Campaigns, attribution
  10. Memberships: Recurring services, membership plans
  11. Payroll: Payroll records, timesheets, adjustments
  12. Pricebook: Categories, materials, services, images
  13. Reporting (beta): Dynamic value sets, custom reports
  14. Sales & Estimates: Generating or retrieving estimates
  15. Scheduling Pro: Advanced schedulers, sessions
  16. Service Agreements: Contract-based services and renewals
  17. Settings: Business units, technicians, user roles
  18. Task Management: Tasks, statuses, related data
  19. Telecom: Call records, analytics

Given this breadth, newcomers can feel overwhelmed. Start with areas that directly address your business pain points — like CRM or Inventory — and expand gradually as you see results.

Is This Overwhelming? Start Small

Don’t try to tackle every endpoint at once. Focus on a single use case that yields immediate ROI — like syncing invoices with your accounting system. As you master the process, broaden your integration scope.


Setting Up Your Environment for a ServiceTitan API Integration

ServiceTitan Integration tools for the Service Titan API

A well-structured integration begins with five key steps:

  1. Requesting Access
  2. Configuring Developer Portal Settings
  3. Identify the API Scope
  4. Authorizing Your App in the ServiceTitan UI
  5. Plan Your Integration Approach

Completing these sequentially ensures proper access, security, and architectural planning — critical for success when building ServiceTitan integrations.


Step 1: Requesting Access

Logging into ServiceTitan to get API credentials or tokens

To start using the ServiceTitan API, you’ll need developer access:

  1. Register: Visit developer.servicetitan.io/request-access and fill out the form if you’re a developer.
  2. Email integrations@servicetitan.com: If you’re a ServiceTitan customer wanting deeper integrations, email your account details to that address.

Logging Into the Developer Portal

Once granted access:

  • Go to developer.servicetitan.io/signin and log in (note this is distinct from the typical ServiceTitan login page).
  • You may be prompted to choose Integration Environment user or Production Environment user. Pick the environment that matches your account or test environment.
  • If you don’t see your apps or credentials, confirm you’re logged into the correct environment.

Key Note

If you have trouble finding your newly created app when connecting in the ServiceTitan UI, you might be in the wrong environment (e.g., test instead of production). Double-check or contact ServiceTitan Support.


Step 2: Configuring Developer Portal Settings

Logging into ServiceTitan to get API credentials or tokens

Once logged in, create a new application:

  1. Create a New App: Enter a descriptive Application Name, Organization, Homepage, and Tenant(s).
  2. Select API Scopes: Only pick endpoints required for your solution (e.g., CRM, Dispatch). This follows the principle of least privilege, enhancing security.
  3. Click “Create App”: You’ll see an overview page with essential info.
  4. Edit the App: Note your App ID and Application Key. Keep them safe — you’ll need them shortly.

Security Tip

Request only the scopes (endpoints) necessary for your ServiceTitan integration to minimize risk if credentials are ever compromised.


Step 3: Identify the API Scope

Service Titan API scopes

Even though you select scopes in the portal, double-check them:

  • Necessary Endpoints: Which categories do you actually need? (e.g., inventory, dispatch, membership)
  • Future Scaling: If you plan to extend usage later, you can reconfigure new scopes instead of starting too broadly now.
  • Tight Permissions: Overexposure invites security or compliance risks. Keep it minimal.

Step 4: Authorizing Your App in the ServiceTitan UI

Authorizing a new app for an integration with the ServiceTitan API

After specifying scopes and saving your app:

  1. Open the ServiceTitan UI: Log in with proper admin or integration privileges.
  2. Go to Settings → Integrations → API Application Access: This panel lists existing or connectable apps.
  3. Click “Connect New App”: Select the app you made in the developer portal.
  4. Click “Connect” and “Allow Access”: Verify the permissions are correct.
  5. Retrieve Tenant ID, Client ID, and Client Secret:
    • Tenant ID: Identifies your ServiceTitan environment
    • Client ID: Ties to your newly connected app
    • Client Secret: Generated once — store it securely (e.g., in an encrypted vault)

At this point, you have:

  • App ID and Application Key (from Developer Portal)
  • Tenant ID, Client ID, and Client Secret (from ServiceTitan UI)

Security Reminder

You can only see your Client Secret once. If you lose it, you can generate a new one, but there’s a max of two active secrets per application.


Step 5: Plan Your Integration Approach

Your business needs drive your integration strategy. Below are common patterns:

  1. Lightweight or Direct API Calls
    • Great for small-scale or on-demand tasks.
  2. Scheduled or Batch Processes
    • Pull data nightly (e.g., invoices or job logs).
  3. Event-Driven or Real-Time
    • Use triggers or webhooks for immediate updates (e.g., Slack messages for job creation).
  4. Hybrid or ESB
    • Larger enterprises with multiple flows might use an enterprise service bus or specialized integration platform.

Assess data volume, timing, reliability requirements, and internal skill sets before finalizing an approach.


Setting Up Postman for Testing

Postman for the ServiceTitan API

Postman is a versatile tool for making HTTP requests to APIs. It’s widely used for:

  • Efficient Testing: Save time with preconfigured endpoints, headers, and query parameters.
  • Collaboration: Share or sync ServiceTitan integration test collections across your team.
  • Automation: Insert scripts to automatically handle authentication or run test suites.

If you haven’t installed Postman yet, download it from Postman.com. Once installed, you’re ready to import our Basic ServiceTitan Integration Starter collection.


1. Importing Our Starter Collection

We’ve created a Postman collection that includes:

  • A pre-request script to fetch an OAuth token (client_credentials).
  • Sample endpoints for Get Technicians, Get Customer, Get Invoices, etc.
  • Variables for tenant IDs, client IDs, secrets, and more.

Steps to Import

  1. Download the .json File (click the link below):

    ➡️ Download the ServiceTitan Postman Collection Starter here ⬅️

  2. In Postman, click ImportFile, then select or paste the .json.

  3. Review Your Collection: It should contain multiple folder/endpoints (e.g., Technicians, Customer, Invoices).


2. Configuring Collection Variables

Inside the imported collection, open Variables. You’ll see placeholders like:

  • auth_url (e.g., https://auth-integration.servicetitan.io/connect/token)
  • base_url (e.g., https://api-integration.servicetitan.io)
  • client_id, client_secret
  • tenant_id
  • st_app_id (your Application Key)

Fill in these with your own ServiceTitan credentials and environment values.


3. Understanding the Pre-Request Script

Each time you send a request, Postman runs a script to get or refresh the access token using your client_credentials flow. In short:

  1. Postman triggers the script, which sends a POST to auth_url.
  2. The server returns an access_token if your credentials are valid.
  3. The script stores access_token in a Postman variable.
  4. Requests then include Authorization: Bearer {{access_token}} and your ST-App-Key: {{st_app_id}}.
/**
 * Simplified snippet of the pre-request script:
 */
 
const authUrl = pm.collectionVariables.get('auth_url')
const clientId = pm.collectionVariables.get('client_id')
const clientSecret = pm.collectionVariables.get('client_secret')
 
pm.sendRequest(
  {
    url: authUrl,
    method: 'POST',
    header: {
      'Content-Type': 'application/x-www-form-urlencoded',
      Accept: 'application/json',
    },
    body: {
      mode: 'urlencoded',
      urlencoded: [
        { key: 'grant_type', value: 'client_credentials' },
        { key: 'client_id', value: clientId },
        { key: 'client_secret', value: clientSecret },
      ],
    },
  },
  function (err, response) {
    if (err) {
      console.log('Error obtaining OAuth token:', err)
      return
    }
 
    const data = response.json()
    if (data.access_token) {
      pm.collectionVariables.set('access_token', data.access_token)
      console.log('Access token stored successfully.')
    } else {
      console.log('No access_token found in response.', data)
    }
  }
)
JS

Single-Source of Truth

No need to manually copy/paste tokens. Postman refreshes them automatically, so long as your auth_url, client_id, and client_secret are correct.


4. Sending Your First Request

  1. Pick a Request (e.g., Get Technicians).
  2. Click “Send.” Postman grabs a token first, then hits the endpoint.
  3. View the Response for JSON data on your technicians, customers, invoices, etc.
  4. If you see 401 Unauthorized, open the Postman Console to debug. Common errors are typos in environment variables or incorrect environment selection.
Postman request and response for ServiceTitan API

5. Extending the Collection

  • Add Requests: Duplicate an existing request and change the path, e.g., from invoices to payments.
  • Refine Variables: For go.servicetitan, servicetitan go, or other region-based domains, set up multiple Postman environments.
  • Automate Tests: Under the Tests tab, write small checks to validate JSON responses or confirm a status code.

Using this ServiceTitan integration starter, you’ll quickly spin up authenticated API calls, enabling you to explore key endpoints with minimal hassle.


Building a Basic Integration Workflow

Having tested essential endpoints in Postman, you can now create actual ServiceTitan integrations that tie data to external systems. Below is a straightforward four-step workflow to illustrate the concept. You can adapt these methods for more advanced scenarios.


Example Workflow: Customer Validation & Notifications

Scenario: Let’s say you want to pull newly created invoices from ServiceTitan, verify if the customer exists in your CRM, and if the invoice is overdue or large, send an alert to your team.

  1. Retrieve the Latest Invoices
  2. Check Customer Details
  3. Notify Your Team
  4. Optionally Update ServiceTitan

While we focus on invoices here, you can replicate the same approach for jobs, customers, or other data relevant to your ServiceTitan integration.


Step 1: Retrieve the Latest Invoices

Postman request and response for invoices on the ServiceTitan API

In your imported Postman collection, use Get Invoices:

  1. Adjust Query if needed (?status=Posted, ?sort=-modifiedOn, etc.).
  2. Send the Request to load current invoices.
  3. Examine Fields: Typical fields include id, customerId, balanceDue, createdOn, and status.

Refining Invoice Search

You can filter by specific dates or statuses to avoid pulling every invoice in your system. Example: ?createdDate[gt]=2024-12-01T00:00:00Z for invoices after a certain date.


Step 2: Check Customer Details

Postman request and response for customers on the ServiceTitan API

Use the Get Customer endpoint in the same collection to fetch more info on each customerId using the ids parameter (pass in a comma-separated list of ids to query for like so: [123 , 456]):

  1. Compare with External CRM: A short script or backend microservice can check if the customer exists.
  2. Create or Enrich: If missing, add a new contact in your CRM. Or merge existing data (like membership status, location).
  3. Cleanse or Validate: Perhaps correct incomplete addresses or unify phone format before moving on to the next step.

Step 3: Notify Your Team

If a certain condition is met (e.g., overdue by 30 days), push an alert:

POST /api/slack-webhook
Content-Type: application/json
 
{
  "channel": "#accounts-receivable",
  "text": "Invoice #{{invoiceId}} for customer {{customerName}} is overdue. Balance: ${{balanceDue}}"
}
HTTP

For email or SMS, you’d change the endpoint or adapt the payload accordingly. Include a direct link to ServiceTitan for quick reference (like a URL that opens the invoice page).


Step 4: Update ServiceTitan (Optional)

If you want to indicate that an invoice is “Under Review” or “Paid,” you can use:

PUT {{base_url}}/accounting/v2/tenant/{{tenant_id}}/invoices/{invoiceId}
Authorization: Bearer {{access_token}}
ST-App-Key: {{st_app_id}}
Content-Type: application/json
 
{
  "status": "Under Review"
}
HTTP

This keeps your ServiceTitan data synchronized with the actions taken. By orchestrating these four steps, you effectively unify your accounting, CRM, and notifications, saving time and ensuring accuracy.

Versioning & Testing

Always test these integrations in a sandbox environment before production. A small mistake can impact financials or disrupt live workflows. Keep logs and version control to revert changes if necessary.


Common Use Cases for ServiceTitan Integrations

Common use cases for the ServiceTitan API

The invoice scenario is just one example. Here are other real-world ServiceTitan integrations:

  1. Two-Way Accounting Sync:
    Automate pushing invoices, payments, and tax calculations to QuickBooks or Xero, or pulling them back into ServiceTitan.
  2. Advanced Reporting & Analytics:
    Export operational data to tools like Power BI or Tableau for interactive dashboards (e.g., job performance, marketing ROI).
  3. Inventory & Equipment Lifecycle:
    Keep track of stock levels and equipment usage in an external supply chain system.
  4. Automated Marketing:
    Kick off targeted email or SMS campaigns when certain triggers occur (e.g., job completion, membership renewals).
  5. Integration with Field IoT:
    Stream device data into ServiceTitan, or feed real-time usage metrics to your technicians.
  6. Legacy Modernization:
    If you rely on older software, bridging it with the ServiceTitan API can be your first step to modernization.

The key is to align each use case with a clear business goal, like reducing operational costs, boosting upsells, or improving customer satisfaction.


Best Practices for Building and Maintaining ServiceTitan Integrations

Best Practices for Building and Maintaining ServiceTitan API integrations

A robust ServiceTitan integration hinges on careful design, security, and ongoing monitoring. Keep these ideas in mind:

1. Principle of Least Privilege

Limit the scopes and permissions you grant. This reduces risk if credentials or tokens become compromised.

2. Idempotent & Fault-Tolerant Calls

Make repeated calls safe, ensuring they don’t create duplicates. Implement retry logic for transient failures like network timeouts.

3. Comprehensive Logging

Log important events, especially errors or key transaction steps (e.g., invoice creation). This simplifies troubleshooting.

4. Version Control & CI/CD

Keep your integration code in Git or similar. Use CI/CD pipelines to automate testing and ensure stable deployments.

5. Monitor Usage & Performance

Stay within ServiceTitan rate limits and watch for performance bottlenecks. If calls slow down, consider partial fetches or narrower queries.

6. Track New Features & Deprecations

ServiceTitan can change or retire certain endpoints. Subscribe to official release notes to avoid unexpected breaks.

Timing & Complexity

Even simple integrations can take days or weeks to perfect, especially when dealing with financial or customer data. Align timelines with stakeholder expectations and conduct thorough QA testing.


Security Considerations for ServiceTitan Integrations

Security Considerations for ServiceTitan API integrations

Security is critical. You’ll likely handle sensitive info such as customer contact details, payment data, or employee payroll. Protect your ServiceTitan integration with:

  1. HTTPS: Encrypt all traffic to the ServiceTitan API.
  2. Token Management: Store tokens in a secure environment or secrets manager. Rotate periodically.
  3. Minimal Logging: Only log data necessary for debugging. Avoid storing full addresses, phone numbers, or other sensitive PII.
  4. Restricted Inbound/Outbound Traffic: If running in the cloud, limit your IP ranges and whitelisting as appropriate.

Post-Deployment Monitoring & Maintenance

Monitoring and maintenance for ServiceTitan API integrations

Once your ServiceTitan integration goes live, don’t set it and forget it:

  1. Alerts & Notifications: Use monitoring tools (e.g., Datadog) to alert you of timeouts or spikes in error rates.
  2. Periodic Audits: Review logs and security posture regularly. Evolving business needs may also prompt scope changes.
  3. Scaling: If you outgrow your initial design, consider adding message queues or modular microservices to handle higher loads.
  4. Stakeholder Visibility: Non-technical managers or executives need metrics or dashboards to see how integrations are performing.

Continuously refining and optimizing your integration ensures it remains reliable, efficient, and aligned with business goals.


Frequently Asked Questions (FAQ)

Frequently asked questions when building ServiceTitan API integrations

What is the difference between “ServiceTitan API” and “Service Titan api”?

Functionally, they refer to the same thing. Different documents may spell it differently, but both terms point to official developer resources for ServiceTitan.

How do I access the ServiceTitan API?

A ServiceTitan login with appropriate permissions is key. You’ll generate API credentials via go.servicetitan or go.servicetitan login, depending on your region or account structure.

What if my older version of ServiceTitan has different endpoints?

ServiceTitan evolves over time. Some older endpoints may differ or be deprecated. Check the official docs for legacy versions or plan a migration strategy.

Can I do everything in Postman without coding?

Yes, up to a point. Postman can handle authentication, request sequencing, and environment variable management. But for extensive automations or real-time triggers, you might need a small script or microservice to orchestrate data flows.

Yes. Batch or asynchronous strategies tend to work best. Or, if near real-time updates are crucial, consider smaller frequent fetches to avoid hitting rate limits.

Are there strict limits on what the ServiceTitan API can do?

Certain features require advanced permissions or licensing tiers. Check the official docs for maximum request rates, plus any restricted modules.

Do I need a specialized developer for this?

While Postman and thorough documentation can help non-specialists get started, complex or large-scale ServiceTitan integrations often benefit from an experienced developer or solutions partner — like Aclarify.

How does this differ from Zapier or similar iPaaS?

Zapier or Workato can handle simpler, trigger-based flows. But ServiceTitan API custom integrations offer deeper coverage and control, especially for specialized or high-volume tasks.


Conclusion

Concluding getting started on ServiceTitan API integrations

Connecting your company’s workflows, data pipelines, and external applications with the ServiceTitan API (or “Service Titan api”) unlocks powerful new possibilities — reducing manual tasks, enhancing operational visibility, and even uncovering new revenue opportunities. By strategically planning your architecture, mastering tools like Postman, and adhering to best practices (from security to version control), you can craft a tailored ServiceTitan integration that aligns seamlessly with your business goals.

Whether you start small — say, updating a single data feed — or build a full-scale ecosystem bridging ServiceTitan with multiple CRMs, marketing platforms, and financial systems, the ServiceTitan API scales to meet your needs. And with so many endpoints available — from CRM to Accounting, Inventory to Memberships — the sky’s the limit.

Ready to see how a ServiceTitan integration can transform your operations? By leveraging the steps laid out in this guide, you’ll be well on your way to modernizing processes, boosting efficiency, and delivering exceptional customer experiences.

Ready to Elevate Your ServiceTitan Integrations?

Aclarify specializes in building robust, scalable, and secure custom integrations that align with your unique objectives. Whether you need to connect ServiceTitan to your CRM, unify inventory workflows, or design a custom reporting engine — our experts can help.

More articles

Enterprise Software Development: A Comprehensive Guide

Discover how enterprise software development can transform your business. Learn about key features, benefits, and best practices.

Read more

How to Implement Google Tag Manager and Consent Mode in NextJS 15

A detailed step-by-step guide to adding Google Tag Manager with Consent Mode to your NextJS 15 application. Learn how to integrate analytics while prioritizing privacy and compliance.

Read more

Tell us about your project

Our offices

  • New Hampshire
    195 Carley Rd
    Peterborough, New Hampshire
    03458 USA
  • California
    1155 5th St, 406
    Oakland, California
    94607 USA