---
title: "How to Fetch Open Tickets from the HubSpot API"
url: "http://35.223.47.52/blog/how-to-fetch-open-tickets-from-the-hubspot-api/"
date: "2026-08-13T12:58:31+00:00"
modified: "2026-08-23T11:20:34+00:00"
type: "post"
---

# How to Fetch Open Tickets from the HubSpot API

[Blog](http://35.223.47.52/blog) / [Tutorials](http://35.223.47.52/blogs/tutorials/) / How to Fetch Open Tickets from the HubSpot API [Tutorials](http://35.223.47.52/blogs/tutorials/) · August 13, 2026 

How to Fetch Open Tickets from the HubSpot API
==============================================

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34ca1e0546a9d333bb35a_Kunal-3-150x150.png)Kunal Mishra

5 min read

 

 

 [](https://www.linkedin.com/sharing/share-offsite/?url=http%3A%2F%2F35.223.47.52%2Fblog%2Fhow-to-fetch-open-tickets-from-the-hubspot-api%2F) [](https://twitter.com/intent/tweet?url=http%3A%2F%2F35.223.47.52%2Fblog%2Fhow-to-fetch-open-tickets-from-the-hubspot-api%2F&text=How%20to%20Fetch%20Open%20Tickets%20from%20the%20HubSpot%20API)  

 

 

 

  Table of Contents - [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [API Endpoints](#api-endpoints)
- [Step-by-Step Process](#step-by-step-process)
- [1. Retrieve Ticket Properties](#1-retrieve-ticket-properties)
- [2. Retrieve Open Tickets for All Customers](#2-retrieve-open-tickets-for-all-customers)
- [3. Retrieve Open Tickets for a Specific Customer](#3-retrieve-open-tickets-for-a-specific-customer)
- [Common Pitfalls](#common-pitfalls)
- [FAQs](#faqs)
- [Knit for HubSpot API Integration](#knit-for-hubspot-api-integration)
 
  Introduction
------------

This article is part of a broader series that breaks down the [HubSpot API ](/blog/hubspot-api-directory-od0rst/)in a practical, use-case-driven way. The focus here is narrow and execution-oriented: **retrieving open support tickets from HubSpot** using the CRM v3 APIs.

If you’re building customer support dashboards, syncing ticket data into a data warehouse, or powering automation around unresolved issues, open tickets are a foundational dataset. This guide walks through exactly how to fetch them.

If you’re looking for a deeper dive into CRM guides across authentication, rate limits, or other CRM objects, refer to the comprehensive [CRM API guide](/blog/full-list-of-knits-crm-api-guides/).

### Prerequisites

Before you start, make sure the basics are in place:

- A valid HubSpot API Key **or** OAuth access token with the required CRM scopes
- Access to a HubSpot account with ticket (CRM) permissions enabled
- A Python environment with the `requests` library installed

Without the right scopes or permissions, ticket data will simply not resolve—no partial credit here.

### API Endpoints

You’ll be working with two primary endpoints:

- **Retrieve all tickets**
    `/crm/v3/objects/tickets`
- **Retrieve ticket properties**
    `/crm/v3/properties/tickets`

The first pulls ticket records; the second helps you identify which property represents ticket status or pipeline stage.

Step-by-Step Process
--------------------

### 1. Retrieve Ticket Properties

Start by fetching ticket properties. This allows you to confirm which field is used to represent ticket status (for example, `hs_pipeline_stage`).

```
import requests

url = "https://api.hubapi.com/crm/v3/properties/tickets"
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN"
}

response = requests.get(url, headers=headers)
print(response.json())
```

This step is critical. Hard-coding assumptions about status fields is one of the fastest ways to ship a broken integration.

### 2. Retrieve Open Tickets for All Customers

Once you’ve identified the correct status property, retrieve tickets and filter for open ones.

```
url = "https://api.hubapi.com/crm/v3/objects/tickets"
params = {
    "properties": "subject,hs_pipeline_stage",
    "limit": 100
}

response = requests.get(url, headers=headers, params=params)

open_tickets = [
    ticket for ticket in response.json()["results"]
    if ticket["properties"]["hs_pipeline_stage"] == "open"
]

print(open_tickets)
```

At scale, this pattern work —but only if you handle pagination and rate limits properly (more on that below).

### 3. Retrieve Open Tickets for a Specific Customer

To pull open tickets for a single customer, you first need to fetch ticket associations for a given contact ID.

```
contact_id = "CONTACT_ID"
url = f"https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}/associations/tickets"

response = requests.get(url, headers=headers)
ticket_ids = [
    assoc["id"] for assoc in response.json()["results"]
    if assoc["type"] == "ticket"
]
```

Then retrieve each ticket and filter for open status:

```
open_tickets_for_contact = []

for ticket_id in ticket_ids:
    url = f"https://api.hubapi.com/crm/v3/objects/tickets/{ticket_id}"
    response = requests.get(url, headers=headers)
    ticket = response.json()

    if ticket["properties"]["hs_pipeline_stage"] == "open":
        open_tickets_for_contact.append(ticket)

print(open_tickets_for_contact)
```

Common Pitfalls
---------------

Most HubSpot ticket integrations fail for predictable reasons. Avoid these:

1. **Missing or incorrect API scopes**
    CRM access is mandatory; partial scopes won’t work.
2. **Ignoring rate limits**
    HubSpot enforces strict per-interval limits. Burst traffic will get throttled.
3. **Hard-coding ticket status values**
    Pipeline stages vary across accounts. Always confirm property values dynamically.
4. **Not handling pagination**
    The default limit caps results. Large ticket volumes require paging via the `after` parameter.
5. **Using deprecated or outdated endpoints**
    CRM v3 is the standard. Anything older is technical debt.
6. **Assuming properties are always present**
    Null or missing fields are common, defensive checks are non-negotiable.
7. **Skipping error handling**
    Silent failures lead to bad data downstream. Always inspect response codes.

FAQs
----

**Q: How do I authenticate with the HubSpot API?**
A: Use either an API key or an OAuth access token with the required CRM scopes.

**Q: What are the HubSpot API rate limits?**
A: HubSpot allows 100 requests per 10 seconds per app by default.

**Q: How do I paginate through large ticket datasets?**
A: Use the `after` parameter returned in the response to fetch the next page of results.

**Q: How do I identify the correct ticket status property?**
A: Call the ticket properties endpoint and inspect the available fields and enums.

**Q: Can I filter tickets using custom properties?**
A: Yes. Custom properties can be requested and filtered like standard properties.

**Q: What’s the best way to handle API errors?**
A: Check HTTP status codes and log error payloads. Retry selectively, not blindly.

**Q: Can I retrieve historical changes to ticket properties?**
A: Yes. Use the `propertiesWithHistory` parameter when retrieving ticket objects.

Knit for HubSpot API Integration
--------------------------------

If you want to skip the overhead of building and maintaining a direct HubSpot integration, Knit provides a faster path. With a single integration, Knit handles authentication, authorization, pagination, and long-term maintenance for the [HubSpot API.](/integration/hubspot/)

---

**Ready to build this integration?**
Explore Knit’s [Hubspot integration](/integration/hubspot/) or read more about our [Unified CRM API](/integration-categories/unified-crm-api/).

 

 ![](https://storage.googleapis.com/knit-website-media/2026/08/64c34ca1e0546a9d333bb35a_Kunal-3-150x150.png)Written by Kunal Mishra

Changing integration landscape, one organization at a time‍

 

 

 

 

 

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

  ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-green-640x400.png) [Developers](http://35.223.47.52/blogs/developers/) 

### [How to Get a HubSpot API Key](http://35.223.47.52/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 

 

   ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-yellow-scaled-640x400.png) [Developers](http://35.223.47.52/blogs/developers/) 

### [HubSpot API: Authentication, Endpoints &amp; Rate Limits](http://35.223.47.52/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 

 

   ![](https://storage.googleapis.com/knit-website-media/2026/08/blog-banner-yellow-scaled-640x400.png) [API Directory](http://35.223.47.52/blogs/api-directory/) 

### [HubSpot API Integration Guide: CRM, Contacts, Deals &amp; OAuth (2026)](http://35.223.47.52/blog/hubspot-api-directory-od0rst/)

This guide covers private app setup, OAuth 2.0 scopes, CRM endpoints, and rate limits — plus how Knit unifies HubSpot…

 March 16, 2026 · 29 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)
