---
title: "Developer’s Guide to the Freshservice API: Syncing Tickets"
url: "https://getknit.dev/blog/freshservice-api-ticket-sync-developer-guide/"
date: "2026-10-19T17:05:02+00:00"
modified: "2026-10-19T17:05:02+00:00"
type: "post"
---

# Developer’s Guide to the Freshservice API: Syncing Tickets

[Blog](https://getknit.dev/blog) / [Developers](https://getknit.dev/blogs/developers/) / Developer’s Guide to the Freshservice API: Syncing Tickets [Developers](https://getknit.dev/blogs/developers/) · October 19, 2026 

Developer’s Guide to the Freshservice API: Syncing Tickets
==========================================================

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34c8eb1ffc79e7f787ecd_Akshat-3-112x112.png)Akshat Jain

4 min read

 

 

 [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fgetknit.dev%2Fblog%2Ffreshservice-api-ticket-sync-developer-guide%2F) [](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgetknit.dev%2Fblog%2Ffreshservice-api-ticket-sync-developer-guide%2F&text=Developer%26%238217%3Bs%20Guide%20to%20the%20Freshservice%20API%3A%20Syncing%20Tickets)  

 

 

 

  Table of Contents - [Handling Freshservice API Authentication](#handling-freshservice-api-authentication)
- [Managing Custom Base URLs and Unified Endpoints](#managing-custom-base-urls-and-unified-endpoints)
- [Fetching Tickets: Freshservice vs. Knit’s Unified Ticketing](#fetching-tickets-freshservice-vs-knits-unified-ticketing)
- [Creating and Updating Tickets Programmatically](#creating-and-updating-tickets-programmatically)
- [Handling Rate Limits in Your Freshservice Integration](#handling-rate-limits-in-your-freshservice-integration)
- [Frequently Asked Questions](#frequently-asked-questions)
- [How do I format the base URL for my specific Freshservice account domain?](#how-do-i-format-the-base-url-for-my-specific-freshservice-account-domain)
- [How do I fetch a list of tickets via the API?](#how-do-i-fetch-a-list-of-tickets-via-the-api)
- [What is the payload to create a new ticket programmatically?](#what-is-the-payload-to-create-a-new-ticket-programmatically)
 
  Building an integration with the Freshservice REST API allows developers to read, create, and sync IT service management data. This article explains how to authenticate requests, set up the Freshservice base URL, and call core Freshservice API endpoints. Freshservice uses a REST architecture to manage service desk operations. To improve consistency, the platform deprecated its older V1 version. It moved users to the upgraded API V2 by May 31, 2023. Evaluating a [Freshservice API integration](https://getknit.dev/integration/freshservice/) requires understanding both direct connection steps and unified abstraction methods.

Handling Freshservice API Authentication
----------------------------------------

Freshservice API authentication no longer accepts standard passwords. To improve security, the platform deprecated username and password basic authentication. After May 31, 2023, the API only supports Basic auth using a unique Freshservice API key. You pass this API key as the username. The password field accepts any random string.

```bash
curl -v -u 'abcdefgh12345678:X' -X GET 'https://domain.freshservice.com/api/v2/tickets/20?include=requester'

```

> **With Knit:** Instead of collecting and storing each customer’s API key in your own code, you can start the connection flow with Knit’s [`POST /auth.createSession`](https://developers.getknit.dev/reference/auth-session-creation-api) endpoint, and each customer connects their own Freshservice account through it.

Managing Custom Base URLs and Unified Endpoints
-----------------------------------------------

Every API call requires a custom domain base URL. Developers format this URL as `https://domain.freshservice.com/api/v2/`. A multi-tenant integration has to store and use the right subdomain for every customer it connects.

> **With Knit:** Knit’s Unified Ticketing API eliminates custom domain handling. It provides a single integration base URL at `https://api.getknit.dev/v1.0` that routes traffic for Freshservice automatically.

Fetching Tickets: Freshservice vs. Knit’s Unified Ticketing
-----------------------------------------------------------

To list records through the Freshservice get ticket API, send a request to `GET /api/v2/tickets`. To page through large data sets, you append a `page` query parameter to the URL. The page count starts at 1.

Knit changes this workflow. Developers fetch these exact records through the [`GET /ticketing/tickets.list`](https://developers.getknit.dev/reference/get-tickets) endpoint. To retrieve a single record, you call [`GET /ticketing/ticket`](https://developers.getknit.dev/reference/get-ticket-by-id). This structure normalizes the response schema across Freshservice, Zendesk, and other ticketing platforms. The same abstraction applies if you want to [Get Open Tickets from the Freshworks API Using Python](https://getknit.dev/blog/get-open-tickets-from-the-freshworks-api-using-python/).

Creating and Updating Tickets Programmatically
----------------------------------------------

Generating a new record programmatically requires a `POST` request to `/api/v2/tickets`. The payload accepts form data fields like the subject, description, priority, and status. To modify an existing record, you use the `PUT` method directed at a specific ticket ID. The update payload uses JSON format.

```bash
curl -v -u api_key:X -H "Content-Type: application/json" -X PUT -d '{
  "description": "Update ticket with assets",
  "status": 2,
  "email": "sample@freshservice.com",
  "priority": 1,
  "subject": "Update ticket with assets",
  "assets": [ { "display_id": 7 }, { "display_id": 8 } ]
}' 'https://domain.freshservice.com/api/v2/tickets/1'

```

> **With Knit:** Knit abstracts these varying HTTP methods. Developers use standard [`POST /ticketing/ticket.create`](https://developers.getknit.dev/reference/create-ticket) and [`POST /ticketing/ticket.update`](https://developers.getknit.dev/reference/update-ticket) requests for all supported ticketing integrations.

Handling Rate Limits in Your Freshservice Integration
-----------------------------------------------------

According to the [Freshservice API docs](https://api.freshservice.com), Add-on pack 1 increases the overall rate limit from 500 to 1,000 requests per minute and raises the corresponding sub-limits. If an application exceeds the limit, the API returns an error response. Read the `Retry-After` value in the response header to check how long to wait before sending another request.

Plan for this wait in any multi-tenant application, where many customers share one integration. For a comparison with another ticketing platform, see [Zendesk Ticketing API: Auth, Endpoints &amp; Rate Limits](https://getknit.dev/blog/zendesk-ticketing-api/).

Frequently Asked Questions
--------------------------

### How do I format the base URL for my specific Freshservice account domain?

The standard format is `https://domain.freshservice.com/api/v2/`. Replace the "domain" portion with the exact subdomain assigned to your organization.

### How do I fetch a list of tickets via the API?

Send a request to the `GET /api/v2/tickets` endpoint. You can append the `page` query parameter to scroll through paginated results.

### What is the payload to create a new ticket programmatically?

A Freshservice create ticket API request accepts a payload with fields for the subject, description, email, priority, and status. Submit this data to the `POST /api/v2/tickets` endpoint.

Building a Freshservice integration?

Knit gives you two ways to build it. Pick the one that fits.

- [Freshservice on Unified API](https://getknit.dev/integration/freshservice/)
    
    Your customers want Freshservice and the other ticketing tools they use. Build one integration and get normalised read and write data with real-time webhooks.
    
    [Try free](https://dashboard.getknit.dev/signup)
- [Freshservice on Integrations Agent](https://getknit.dev/ipaas-connectors/freshservice/)
    
    You need one specific Freshservice workflow. Describe it in plain English and get production-ready code, not fixed iPaaS blocks.
    
    [Try free](https://agent.getknit.dev/)

Knit's Unified API connects to 190+ apps across HRIS, ATS, CRM, accounting and more.

Knit never stores your end users' data and is SOC 2, GDPR and ISO 27001 compliant: [How Knit handles security](/security/) · [Security Center](https://compliance.getknit.dev/)

Not sure which fits? [Talk to a human](/book-demo/)

 

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34c8eb1ffc79e7f787ecd_Akshat-3-112x112.png)Written by Akshat Jain

Coding chaos into innovation and building from zero to scale

 

 

 

 

 

  Keep Reading
------------

  ![Best Integration Platform for AI Agents in 2026](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-yellow-scaled-640x400.png) [Developers](https://getknit.dev/blogs/developers/) 

### [Best Integration Platform for AI Agents in 2026](https://getknit.dev/blog/best-integration-platform-for-ai-agents/)

A comparison of AI agent integration platforms — Knit, Nango, Composio, Arcade, Paragon, and Workato Embedded - covering MCP support,…

 August 25, 2026 · 12 min read 

 

   ![HubSpot API: Authentication, Endpoints & Rate Limits](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-yellow-scaled-640x400.png) [Developers](https://getknit.dev/blogs/developers/) 

### [HubSpot API: Authentication, Endpoints &amp; Rate Limits](https://getknit.dev/blog/hubspot-api/)

How the HubSpot CRM API works: Service Key, private app, and OAuth auth, CRM object endpoints, rate limits, pagination, and…

 June 20, 2026 · 6 min read 

 

   ![How to Get a HubSpot API Key](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-green-640x400.png) [Developers](https://getknit.dev/blogs/developers/) 

### [How to Get a HubSpot API Key](https://getknit.dev/blog/hubspot-api-key/)

HubSpot retired static API keys in 2022. Here's how to get a working credential today - a Service Key or…

 June 20, 2026 · 8 min read 

 

  

 

  \#1 in Ease of Integrations
---------------------------

![4.9 out of 5 stars](/wp-content/themes/knit/assets/images/g2/g2-star-rating.svg)

4.9 out of 5 stars on G2

![G2 Leader, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-leader.svg)![G2 Fastest Implementation, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-fastest-implementation.svg)![G2 High Performer, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-high-performer.svg)![G2 Best Est. ROI, Spring 2026](/wp-content/themes/knit/assets/images/g2/g2-best-roi.svg)

 

  Put Integrations on Autopilot. Talk to Experts.
-----------------------------------------------

Knit is loved by customers across the globe due to our seamless product and white glove support. You'll love us too!

 [Talk to a Human](/book-demo)
