This document provides detailed information about all 178 supported Autotask REST API entities, organized by category and functionality.
- Entity Overview
- Core Business Entities
- Contract Management
- Financial Management
- Configuration Management
- Time Tracking & Scheduling
- Inventory Management
- Knowledge Management
- Attachment Management
- Note Management
- Service Call Management
- Ticketing Extensions
- Organizational Structure
- Complete Entity List
Each entity in the Autotask Node SDK supports a consistent set of operations based on the Autotask API capabilities:
| Operation | HTTP Method | Description |
|---|---|---|
GET |
GET | Retrieve entities with filtering and sorting |
POST |
POST | Create new entities |
PATCH |
PATCH | Update specific fields of existing entities |
PUT |
PUT | Replace entire entity (full update) |
DELETE |
DELETE | Remove entities from the system |
Not all entities support all operations. The availability depends on business logic and data integrity requirements:
- Read-only entities: Only support GET operations (e.g., lookup tables, system information)
- Create-only entities: Support GET and POST operations (e.g., certain log entries)
- Full CRUD entities: Support all operations (e.g., tickets, companies, contacts)
The primary entities used in daily PSA operations.
Endpoint: /v1.0/Companies
Operations: GET, POST, PATCH, PUT
Description: Customer organizations and accounts
interface Company {
id: number
companyName: string
companyNumber?: string
companyType: number // 1=Customer, 2=Lead, 3=Prospect, etc.
isActive: boolean
phone?: string
fax?: string
address1?: string
address2?: string
city?: string
state?: string
postalCode?: string
country?: string
webAddress?: string
// ... additional fields
}
// Usage examples
const company = await client.companies.create({
companyName: 'Acme Corporation',
companyType: 1, // Customer
isActive: true
})
const customers = await client.companies.query()
.where('companyType', 'eq', 1)
.where('isActive', 'eq', true)
.execute()Endpoint: /v1.0/Contacts
Operations: GET, POST, PATCH, PUT
Description: Individual contacts within companies
interface Contact {
id: number
companyId: number
firstName: string
lastName: string
title?: string
emailAddress?: string
phone?: string
mobilePhone?: string
isActive: boolean
isPrimaryContact?: boolean
// ... additional fields
}
// Find primary contacts for companies
const primaryContacts = await client.contacts.query()
.where('isPrimaryContact', 'eq', true)
.where('isActive', 'eq', true)
.include('Company', ['companyName'])
.execute()Endpoint: /v1.0/Tickets
Operations: GET, POST, PATCH, PUT
Description: Service tickets and support requests
interface Ticket {
id: number
title: string
description?: string
status: number // 1=New, 5=In Progress, 8=Waiting Customer, etc.
priority: number // 1=Critical, 2=High, 3=Medium, 4=Low
ticketType: number
companyId: number
contactId?: number
assignedResourceId?: number
dueDateTime?: string
estimatedHours?: number
completedDateTime?: string
// ... additional fields
}
// Create escalated ticket
const urgentTicket = await client.tickets.create({
title: 'Critical server outage',
description: 'Production server is down, immediate attention required',
companyId: 123,
status: 1, // New
priority: 1, // Critical
ticketType: 1 // Service Request
})Endpoint: /v1.0/Projects
Operations: GET, POST, PATCH, PUT
Description: Client projects and work orders
interface Project {
id: number
projectName: string
companyId: number
projectNumber?: string
description?: string
startDateTime?: string
endDateTime?: string
projectManagerResourceId?: number
status: number // 1=Active, 2=Complete, etc.
type: number // 1=Fixed Price, 2=Time & Materials, etc.
estimatedHours?: number
actualHours?: number
// ... additional fields
}Endpoint: /v1.0/Tasks
Operations: GET, POST, PATCH, PUT
Description: Project tasks and work items
interface Task {
id: number
title: string
projectId: number
assignedResourceId?: number
status: number
priority: number
estimatedHours?: number
actualHours?: number
startDateTime?: string
endDateTime?: string
description?: string
// ... additional fields
}Endpoint: /v1.0/Resources
Operations: GET, POST, PATCH, PUT
Description: Human resources and staff members
interface Resource {
id: number
firstName: string
lastName: string
userName: string
email: string
isActive: boolean
resourceType: number // 1=Employee, 2=Contractor, etc.
title?: string
phone?: string
mobilePhone?: string
// ... additional fields
}Endpoint: /v1.0/Opportunities
Operations: GET, POST, PATCH, PUT
Description: Sales opportunities and pipeline management
interface Opportunity {
id: number
title: string
companyId: number
amount?: number
cost?: number
closeDate?: string
stage: number // 1=Qualification, 2=Needs Analysis, etc.
status: number // 1=Open, 2=Won, 3=Lost, etc.
probability?: number
contactId?: number
ownerResourceId?: number
// ... additional fields
}Entities for managing service contracts and agreements.
Endpoint: /v1.0/Contracts
Operations: GET, POST, PATCH, PUT
Description: Service contracts and agreements
interface Contract {
id: number
accountId: number
contractName: string
contractType: number
startDate: string
endDate?: string
serviceDate?: string
status: number
billingPreference: number
// ... additional fields
}Endpoint: /v1.0/ContractServices
Operations: GET, POST, PATCH, PUT, DELETE
Description: Services included in contracts
Endpoint: /v1.0/ContractBillingRules
Operations: GET, POST, PATCH, PUT, DELETE
Description: Billing rules for contracts
Endpoint: /v1.0/ContractRates
Operations: GET, POST, PATCH, PUT, DELETE
Description: Billing rates for contracts
Entities for billing, invoicing, and financial operations.
Endpoint: /v1.0/Invoices
Operations: GET, POST, PATCH, PUT
Description: Customer invoices and billing
interface Invoice {
id: number
accountId: number
invoiceNumber?: string
invoiceDate: string
dueDate?: string
totalAmount?: number
paidAmount?: number
balanceAmount?: number
status: number
// ... additional fields
}Endpoint: /v1.0/Quotes
Operations: GET, POST, PATCH, PUT
Description: Customer quotes and estimates
Endpoint: /v1.0/PurchaseOrders
Operations: GET, POST, PATCH, PUT
Description: Purchase orders for procurement
Endpoint: /v1.0/BillingItems
Operations: GET, POST, PATCH, PUT, DELETE
Description: Billing items for invoicing
Endpoint: /v1.0/BillingCodes
Operations: GET, POST, PATCH, PUT
Description: Billing codes for time and expense tracking
Entities for IT asset and configuration management.
Endpoint: /v1.0/ConfigurationItems
Operations: GET, POST, PATCH, PUT
Description: Configuration items and assets
interface ConfigurationItem {
id: number
companyId: number
configurationItemName: string
configurationItemType: number
configurationItemCategoryId?: number
isActive: boolean
serialNumber?: string
installDate?: string
warrantyExpirationDate?: string
// ... additional fields
}Endpoint: /v1.0/ConfigurationItemTypes
Operations: GET
Description: Types of configuration items
Endpoint: /v1.0/ConfigurationItemCategories
Operations: GET
Description: Categories for configuration items
Entities for time management and scheduling.
Endpoint: /v1.0/TimeEntries
Operations: GET, POST, PATCH, PUT, DELETE
Description: Time tracking entries for billing
interface TimeEntry {
id: number
resourceId: number
taskId?: number
ticketId?: number
dateWorked: string
hoursWorked: number
billingCodeId?: number
internalAllocationCodeId?: number
hoursToBill?: number
summary?: string
internalNotes?: string
// ... additional fields
}Endpoint: /v1.0/Appointments
Operations: GET, POST, PATCH, PUT, DELETE
Description: Calendar appointments and scheduling
Endpoint: /v1.0/Holidays
Operations: GET, POST, PATCH, PUT, DELETE
Description: Holiday calendar entries
Endpoint: /v1.0/TimeOffRequests
Operations: GET, POST, PATCH, PUT, DELETE
Description: Requests for time off
Entities for product and inventory management.
Endpoint: /v1.0/Products
Operations: GET, POST, PATCH, PUT
Description: Products and services offered
Endpoint: /v1.0/InventoryItems
Operations: GET, POST, PATCH, PUT, DELETE
Description: Items in inventory
Endpoint: /v1.0/InventoryLocations
Operations: GET, POST, PATCH, PUT, DELETE
Description: Physical locations for inventory storage
Entities for documentation and knowledge base.
Endpoint: /v1.0/Documents
Operations: GET, POST, PATCH, PUT
Description: Documents and files in the system
Endpoint: /v1.0/KnowledgeBaseArticles
Operations: GET, POST, PATCH, PUT, DELETE
Description: Knowledge base articles and documentation
Endpoint: /v1.0/Articles
Operations: Various
Description: Legacy article system (use KnowledgeBaseArticles for new implementations)
Here's the complete list of all 178 supported entities organized alphabetically within categories:
- Companies
- Contacts
- Opportunities
- Projects
- Resources
- Tasks
- Tickets
- Contracts
- ContractBillingRules
- ContractBlockHourFactors
- ContractBlocks
- ContractCharges
- ContractExclusionBillingCodes
- ContractExclusionRoles
- ContractExclusionSetExcludedRoles
- ContractExclusionSetExcludedWorkTypes
- ContractExclusionSets
- ContractMilestones
- ContractRates
- ContractRetainers
- ContractRoleCosts
- ContractServiceAdjustments
- ContractServiceBundleAdjustments
- ContractServiceBundleUnits
- ContractServiceBundles
- ContractServices
- ContractServiceUnits
- ContractTicketPurchases
- ServiceBundles
- ServiceBundleServices
- Services
- BillingCodes
- BillingItemApprovalLevels
- BillingItems
- ChangeOrderCharges
- Currencies
- Invoices
- InvoiceTemplates
- PaymentTerms
- PurchaseApprovals
- PurchaseOrderItemReceiving
- PurchaseOrderItems
- PurchaseOrders
- QuoteItems
- QuoteLocations
- Quotes
- QuoteTemplates
- TaxCategories
- TaxRegions
- Taxes
- ConfigurationItemAttachments
- ConfigurationItemBillingProductAssociations
- ConfigurationItemCategories
- ConfigurationItemCategoryUdfAssociations
- ConfigurationItemDnsRecords
- ConfigurationItemRelatedItems
- ConfigurationItems
- ConfigurationItemSslSubjectAlternativeName
- ConfigurationItemTypes
- Appointments
- Holidays
- HolidaySets
- ResourceDailyAvailabilities
- ResourceTimeOffAdditional
- ResourceTimeOffApprovers
- ResourceTimeOffBalances
- TimeEntries
- TimeOffRequests
- TimeOffRequestsApprove
- TimeOffRequestsReject
- InventoryItems
- InventoryItemSerialNumbers
- InventoryLocations
- InventoryProducts
- InventoryStockedItems
- InventoryStockedItemsAdd
- InventoryStockedItemsRemove
- InventoryStockedItemsTransfer
- InventoryTransfers
- Products
- ProductTiers
- ProductVendors
- Articles
- ArticleAttachments
- ArticleConfigurationItemCategoryAssociations
- ArticlePlainTextContent
- ArticleTagAssociations
- ArticleTicketAssociations
- ArticleToArticleAssociations
- ArticleToDocumentAssociations
- DocumentCategories
- DocumentChecklistItems
- DocumentChecklistLibraries
- DocumentConfigurationItemAssociations
- DocumentConfigurationItemCategoryAssociations
- Documents
- DocumentTagAssociations
- DocumentTicketAssociations
- DocumentToArticleAssociations
- KnowledgeBaseArticles
- KnowledgeBaseCategories
- ArticleAttachments
- AttachmentInfo
- CompanyAttachments
- DocumentAttachments
- ExpenseItemAttachments
- ExpenseReportAttachments
- OpportunityAttachments
- ProjectAttachments
- ResourceAttachments
- SalesOrderAttachments
- TaskAttachments
- TicketAttachments
- TimeEntryAttachments
- ArticleNotes
- CompanyNoteAttachments
- CompanyNotes
- ConfigurationItemNoteAttachments
- ConfigurationItemNotes
- ContractNoteAttachments
- ContractNotes
- DocumentNotes
- ProductNotes
- ProjectNoteAttachments
- ProjectNotes
- TaskNoteAttachments
- TaskNotes
- TicketNoteAttachments
- TicketNotes
- ServiceCallTaskResources
- ServiceCallTasks
- ServiceCallTicketResources
- ServiceCallTickets
- ServiceCalls
- TicketAdditionalConfigurationItems
- TicketAdditionalContacts
- TicketCategories
- TicketCategoryFieldDefaults
- TicketChangeRequestApprovals
- TicketCharges
- TicketChecklistItems
- TicketChecklistLibraries
- TicketHistory
- TicketRmaCredits
- TicketSecondaryResources
- TicketTagAssociations
- CompanyCategories
- CompanyLocations
- CompanySiteConfigurations
- CompanyTeams
- CompanyToDos
- Departments
- InternalLocations
- InternalLocationWithBusinessHours
- OrganizationalLevel1
- OrganizationalLevel2
- OrganizationalLevelAssociations
- OrganizatonalResources
- ExpenseItemAttachment
- ExpenseItems
- ExpenseReports
- OpportunityCategories
- SalesOrders
- PriceListMaterialCodes
- PriceListProducts
- PriceListProductTiers
- PriceListRoles
- PriceListServiceBundles
- PriceListServices
- PriceListWorkTypeModifiers
- AdditionalInvoiceFieldValues
- ChangeRequestLinks
- ComanagedAssociations
- ContactBillingProductAssociations
- ContactGroupContacts
- ContactGroups
- ServiceLevelAgreementResults
- ClientPortalUsers
- TagAliases
- TagGroups
- Tags
- TaskPredecessors
- TaskSecondaryResources
- SurveyResults
- Surveys
- CompanyAlerts
- NotificationHistory
- ChecklistLibraries
- ChecklistLibraryChecklistItems
- UserDefinedFieldDefinitions
- UserDefinedFieldListItems
- ActionTypes
- ClassificationIcons
- Countries
- DomainRegistrars
- Modules
- OrganizationalLevel1
- OrganizationalLevel2
- Phases
- ResourceRoleDepartments
- ResourceRoleQueues
- ResourceRoles
- ResourceServiceDeskRoles
- ResourceSkills
- Roles
- ShippingTypes
- Skills
- SubscriptionPeriods
- Subscriptions
- Version
- WorkTypeModifiers
- DeletedTaskActivityLogs
- DeletedTicketActivityLogs
- DeletedTicketLogs
- ProjectCharges
- TaskPredecessors
- TaskSecondaryResources
- RecurringSerContractEntityRelation
// Find all active tickets for a company
const companyTickets = await client.tickets.query()
.where('companyId', 'eq', 123)
.where('status', 'in', [1, 5, 8]) // New, In Progress, Waiting Customer
.orderBy('priority', 'asc')
.orderBy('dueDateTime', 'asc')
.execute()
// Get project progress
const projectTasks = await client.tasks.query()
.where('projectId', 'eq', 456)
.select('id', 'title', 'status', 'estimatedHours', 'actualHours')
.orderBy('startDateTime', 'asc')
.execute()
// Find overdue time entries
const overdueEntries = await client.timeEntries.query()
.where('dateWorked', 'lt', '2024-01-01')
.where('billableToAccount', 'eq', true)
.where('isNonBillable', 'eq', false)
.include('Resource', ['firstName', 'lastName'])
.execute()// Create multiple contacts for a company
const contacts = [
{ companyId: 123, firstName: 'John', lastName: 'Doe' },
{ companyId: 123, firstName: 'Jane', lastName: 'Smith' }
]
const createdContacts = await Promise.all(
contacts.map(contact => client.contacts.create(contact))
)
// Update multiple tickets
const ticketUpdates = [
{ id: 1001, status: 5, assignedResourceId: 456 },
{ id: 1002, status: 8, estimatedHours: 4 }
]
const updatedTickets = await Promise.all(
ticketUpdates.map(update =>
client.tickets.update(update.id, update)
)
)This entity reference provides comprehensive coverage of all 178 Autotask entities available through the SDK. Each entity follows consistent patterns for CRUD operations and query building, making the API predictable and easy to use.