For Agents
Create and update tickets, companies, contacts, contracts, projects, time entries, and invoices in Autotask PSA, and run filtered queries against any of the 200+ entity types using the uniform /query endpoint.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Datto Autotask PSA REST API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Datto Autotask PSA REST API.
Create, update, and patch records across 200+ Autotask entities using their entity-specific POST, PUT, and PATCH endpoints
Run filtered, paginated queries against any entity via /V1.0/{Entity}/query with a JSON filter body
Inspect each entity's field definitions and user-defined fields via /entityInformation/fields and /entityInformation/userDefinedFields
GET STARTED
Use for: Create a new ticket in Autotask for a customer, Find all open tickets assigned to a specific resource, Log a time entry against a ticket, Update the status of a project task
Not supported: Does not handle remote monitoring and management agents, network device discovery, or end-user remote control — use for PSA workflows: tickets, contracts, time, projects, and billing only.
Datto Autotask PSA is a professional services automation platform widely used by managed service providers (MSPs) to manage tickets, contracts, time entries, billing, and resource scheduling. The REST API exposes a uniform CRUD-and-query surface across more than 200 entities — Tickets, Companies, Contacts, Contracts, Projects, Tasks, Time Entries, Invoices, Resources — with consistent /entityInformation, /query, and /{id} routes per entity. The result is over three thousand path-and-method combinations, all reachable from a single base URL once an API user is provisioned in the Autotask UI.
Retrieve a single record by ID with GET /V1.0/{Entity}/{id} or delete it with DELETE
Count records matching a filter via /V1.0/{Entity}/query/count without retrieving the rows
Drive ticket-management automations: create Tickets, link Notes, assign Resources, log Time Entries
Manage commercial records: Companies, Contracts, Contract Services, Invoices, and Billing Items
Patterns agents use Datto Autotask PSA REST API for, with concrete tasks.
★ MSP ticket automation
Automate the creation and triage of support tickets in Autotask from monitoring tools or email parsers. POST /V1.0/Tickets creates the ticket with company, contact, and priority; POST /V1.0/Tickets/query returns existing tickets to deduplicate; POST /V1.0/TimeEntries logs work as the technician resolves it. The same uniform /query and /{id} pattern works for every related entity, which keeps the integration code small even with hundreds of fields.
POST /V1.0/Tickets with companyID, contactID, title, description, and priority, then POST /V1.0/TimeEntries against the new ticketID as work progresses
Reporting pipeline across PSA entities
Pull billing, time, and ticket data into a data warehouse for executive reporting. /V1.0/{Entity}/query accepts JSON filters with date ranges, so a nightly job iterates Tickets, TimeEntries, BillingItems, and Invoices for the last 24 hours. /entityInformation/fields gives a stable field list per entity so the warehouse schema can be code-generated rather than hand-maintained.
For each entity in the report set, POST /V1.0/{Entity}/query with a date filter and page through the results until the response indicates no further pages
Contract and billing reconciliation
Reconcile contract terms, billing items, and invoices to detect under-billing or missed charges. /V1.0/Contracts/query lists active contracts; /V1.0/ContractServices/query enumerates the services on each; /V1.0/BillingItems/query returns what was actually invoiced. A reconciliation script flags contracts where ContractServices exist without matching BillingItems for the period.
Query Contracts, then for each contract POST /V1.0/ContractServices/query and /V1.0/BillingItems/query and compare the result sets
Agent-driven service desk operations
An AI agent on the service desk creates and updates tickets in Autotask without leaving the agent's chat surface. Through Jentic the Autotask API integration code, username, and secret are all stored in the credential vault, and Jentic exposes the high-frequency operations (Tickets create, Tickets query, TimeEntries create) as discoverable tools. The agent can run /V1.0/Tickets/query/count to size a queue before deciding whether to escalate.
Search Jentic for 'create an Autotask ticket', load POST /V1.0/Tickets, and execute it with the company and contact IDs derived from the inbound message
3003 endpoints — datto autotask psa is a professional services automation platform widely used by managed service providers (msps) to manage tickets, contracts, time entries, billing, and resource scheduling.
METHOD
PATH
DESCRIPTION
/V1.0/Tickets
Create a new ticket
/V1.0/Tickets/query
Query tickets with a JSON filter
/V1.0/Tickets/{id}
Retrieve a ticket by ID
/V1.0/TimeEntries
Log a time entry
/V1.0/Companies/query
Query companies with a JSON filter
/V1.0/Contracts/query
Query contracts with a JSON filter
/V1.0/Tickets/query/count
Count tickets matching a filter
/V1.0/Tickets/entityInformation/fields
Inspect Ticket field definitions
/V1.0/Tickets
Create a new ticket
/V1.0/Tickets/query
Query tickets with a JSON filter
/V1.0/Tickets/{id}
Retrieve a ticket by ID
/V1.0/TimeEntries
Log a time entry
/V1.0/Companies/query
Query companies with a JSON filter
Three things that make agents converge on Jentic-routed access.
Credential isolation
Autotask requires three header values (ApiIntegrationCode, UserName, Secret); all three are stored encrypted in the Jentic credential vault and injected per call. Agents never see the secret, and credential rotation does not require code changes in the calling app.
Intent-based discovery
Agents search Jentic for intents like 'create an Autotask ticket' or 'log a time entry' and Jentic returns the matching operation across the 3,000+ available endpoints, so the agent does not need to enumerate every entity-specific path.
Time to first call
Direct Autotask integration: 1-2 weeks to handle the JSON filter syntax, pagination via pageDetails, and per-entity field introspection across the entities your workflow touches. Through Jentic: under an hour for any single operation — search, load the schema, execute.
Alternatives and complements available in the Jentic catalogue.
Specific to using Datto Autotask PSA REST API through Jentic.
What authentication does the Autotask PSA REST API use?
Autotask requires three header values on every request: ApiIntegrationCode, UserName, and Secret. The UserName is an API user created in Autotask with a specific security level; the Secret is its generated password. Through Jentic all three values are held in the credential vault and injected as headers per call so the agent never sees the raw secret.
How do I create a ticket through the Autotask PSA REST API?
POST /V1.0/Tickets with a JSON body containing companyID, the responsible contactID, title, description, status, priority, and queueID. The response returns the created ticket's id, which you can use with /V1.0/Tickets/{id} or /V1.0/TimeEntries to log work against it.
How do queries work in the Autotask PSA REST API?
Each entity exposes /V1.0/{Entity}/query for a JSON filter body and /V1.0/{Entity}/query for URL-parameter filters via GET. The body uses Filter expressions with op values like 'eq', 'gt', 'in', and supports paginated responses via the pageDetails returned alongside each result set.
How do I list tickets modified in the last day through Jentic?
Search Jentic for 'query Autotask tickets', load POST /V1.0/Tickets/query, and execute it with a Filter on lastActivityDate gt the cutoff timestamp. Jentic injects ApiIntegrationCode, UserName, and Secret on the call. Get started at https://app.jentic.com/sign-up.
What are the rate limits for the Autotask PSA REST API?
Autotask enforces per-API-user thresholds (broadly 10,000 calls per hour on most accounts) and returns 429 when exceeded. Treat /query as the primary read path because it returns up to 500 records per page, which is far more efficient than per-id GETs.
Can I discover what fields exist on a given entity?
Yes. GET /V1.0/{Entity}/entityInformation/fields returns the standard field list with types and constraints, and /entityInformation/userDefinedFields returns custom fields configured in your Autotask instance. This lets integrators introspect schema rather than hardcode it.
/V1.0/Contracts/query
Query contracts with a JSON filter
/V1.0/Tickets/query/count
Count tickets matching a filter
/V1.0/Tickets/entityInformation/fields
Inspect Ticket field definitions