Recent searches


No recent searches

New limits for offset-based pagination



image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Edited Sep 11, 2024


1

39

39 comments

Do we have any insight on what OOTB integrations this will impact? Specifically Salesforce OOTB integration? 

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Rogan,

OOTB integrations (built by Zendesk) will be auto-upgraded to use Cursor Pagination Model.

0


Hi,

Do time based incremental export considered OBP or CBP? and does it get affected by this change?

reference: https://developer.zendesk.com/documentation/ticketing/managing-tickets/using-the-incremental-export-api/#time-based-incremental-exports

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Oonwattana,

Time based Incremental Export is a special case and not considered either OBP or CBP. The new page 100 limit is not applicable to it.

You can export tickets using cursor-based exports or time-based exports. However, Zendesk strongly recommends using cursor-based exports for better performance.

0


Hi,

Thanks for the recommendation, but we will still be keeping with the Time based method.

The issue with cursor-based is that it gives out the next page path as code, e.g. https://{{subdomain}}.zendesk.com/api/v2/incremental/tickets/cursor.json?cursor=MTU3NjYxMzUzOS4wfHw0Njd8

This is making it very much difficult to troubleshooting in case of issues, or let's say that the service stops polling the ticket data, and want to restart the service, we would not know what was the time stamp that the service got stopped.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Oonwattana,

We respect your method choice as it is still valid way to paginate data.

---

I would like to provide some extra information for your scenario. I hope you it could be helpful.

Unsure if you already know this, but the cursor value is a base64 string of {unix_time} and other relevant coded value used by Zendesk to paginate results in an optimal way.

For example, `MTU3NjYxMzUzOS4wfHw0Njd8` is base64Encoded value of `1576613539.0|...|` which in turn is `Tuesday, 17 December 2019 20:12:19` in human readable time.

If debugging is a concern, especially figuring out the timestamp, you may do that with the cursor model as well with this single extra decoding step when needed.

You can always use a mix of timed and cursor models. This will be handy to restart your export job after any issues. Referencing the docs - 

Use the following path for the initial request:

GET /api/v2/incremental/tickets/cursor.json?start_time={unix_time}

After using the start_time parameter in the initial request, use the cursor parameter for all subsequent results pages as well as for all subsequent exports:

GET /api/v2/incremental/tickets/cursor.json?cursor={cursor_pointer}

Hope this helps.

0


Thanks for the update @...

I am also wondering if cursor based pagination is supporting ticket_events in incremental export?

https://developer.zendesk.com/api-reference/ticketing/ticket-management/incremental_exports/#incremental-ticket-event-export

From below doc, it says it only supports tickets/users, not ticket_events?

https://developer.zendesk.com/documentation/ticketing/managing-tickets/using-the-incremental-export-api/#cursor-based-incremental-exports

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

As of today, only Time Based Model is supported for the ticket_events.

We will update in the documentation when support for CBP model is made available.

0


Hi there, 

Will this take effect in Zendesk Sandbox environments at the same time?

Thanks!

Rich

0


Hi there! Is Cursor Pagination available in list-tickets-from-a-view api?

Thanks in advance!

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Herbert, Rich,

Yes, the changes will be rolled out at the same time.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Hossein Vahedi,

We are providing CBP Support for the Tickets View. The change is being rolled out and we will update the documentation once it is fully there.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Change:

Zendesk has extended the timeline by a week to August 22, 2023 UTC from August 15, 2023 to give full 3 months notice.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

There are certain design criteria on the Cursor Model as stated in the documentation. Count is one of such criteria and you have to use the relevant endpoint's /count path to get the count you need. 

Analysing the traffic we get, the product has identified the top endpoints and already provide count for - 

Do you a specific endpoint that needs count ? What is the use case for your integration/app ?

Thank you.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Thank you.

I will reach out to the Help Center teams and explore the option of providing count in the respective endpoints.

0


Hi,
I'm using /ticket_forms endpoint to fetch zendesk ticket forms but I did not find the /ticket_forms API listed in above mentioned "Endpoints with CBP Capability" list. Does this API support cursor pagination or just offset pagination for now. 
Also, while using the offset pagination I'm always getting the same result set even after passing per_page and page parameters to the request param. Is there anything which I missed out. 
I would really appreciate any help. 
example request : https://{{subdomain}}.zendesk.com/api/v2/ticket_forms.json?per_page=5&page=1

thanks 

0


image avatar

David

Zendesk Customer Care

Hello!

I’m happy to help. The /ticket_forms endpoint is not listed in the “Endpoints with CBP Capability” list because it does not support CBP pagination. Instead, it supports cursor pagination and offset pagination. 

To use cursor pagination, include the page[size] parameter in the request parameters. This parameter is also used to specify the number of items to return per page. Most endpoints limit this to a maximum of 100. If you omit the page[size] parameter, offset pagination is used.  

Regarding your issue with offset pagination, it is possible that the page parameter is not being passed correctly. You can try using the next_page URL returned in the response to fetch the next set of results.  

-2


I just got an email notification that our Zendesk is using the offset-based pagination and might be affected. Is there some way I can get more information about where we might be using this? Much of our Zendesk implementation was done before I started working for my current employer, so I don't know off the top of my head where we might be using this. Is there a way to learn which API or component we are using triggered this email warning? 

7


Hello,

We've received an email notification regarding our Zendesk account's current use of OBP and the requirement to upgrade to an SDK version that utilizes CBP. What are the potential risks if we choose not to proceed with this upgrade? Our website predates my tenure, making it challenging to determine the impact on our API and which specific components of our site might be significantly affected. Could we please obtain more detailed information on this matter? Thank you for your assistance.

3


Hi @...,

It seems like not all of the endpoints listed in this article support CBP.

For example:

Ticketing /api/v2/ticket_fields/:ticket_field_id/options

still returns responses based on OBP (at least on our instance).

I tried https://[XXXXXXXXXXX].zendesk.com/api/v2/ticket_fields/[XXXXXXXXXX]/options?page[size]=100

I was expecting to see the new response structure.  
{
   "custom_field_options": [],

    "meta": {
        "has_more": false,
        "after_cursor": "edfjsdlkjfslkdfjlejflsdjflsdjflskjgslkjdglsjdkfjsd=",
        "before_cursor": "sdfjslfjslkfjslkdgjsl;kdfgjsldfjsldjfslkdfjslfjsld="
    },
    "links": {
        "prev": "XXXXXXXXXXXXXXXXXXXXX",
        "next": "XXXXXXXXXXXXXXXXXXXXX"
    }

}

However, I got a response with the same old structure:
{
    "custom_field_options": [],
    "next_page": XXXXXXXXXXXXX,
    "previous_page": XXXXXXXXXXXXX,
    "count": 225
}

Can you please help to confirm?  I am not able to proceed with updating things until I know when all of the endpoints listed in this documents will be updated.

Thanks.

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Walter,

Thank you for bringing this up.

I can confirm that the sub-resource "options" on "ticket fields" is not providing a cursor pagination response even when proper cursor parameters are sent in the request params.

The team is working on the root cause and a fix. I will update here once it is done/ready, also you are copied on the issue ticket.

0


Hi @...,

Thank you for looking into this. 

0


Hi Abhinay Pandey,

Regarding your question:

Hi,
I'm using /ticket_forms endpoint to fetch zendesk ticket forms but I did not find the /ticket_forms API listed in above mentioned "Endpoints with CBP Capability" list. Does this API support cursor pagination or just offset pagination for now. 
Also, while using the offset pagination I'm always getting the same result set even after passing per_page and page parameters to the request param. Is there anything which I missed out. 
I would really appreciate any help. 
example request : https://{{subdomain}}.zendesk.com/api/v2/ticket_forms.json?per_page=5&page=1

I don't believe the ticket forms endpoint will support cursor pagination.  The maximum number of ticket forms per instance is 300.  See https://support.zendesk.com/hc/en-us/articles/4408846520858-Creating-multiple-ticket-forms 

As stated above:

OBP requests for fewer than 10,000 records will not be affected, nor will requests made using the CBP model. 

Furthermore, the API documentation for the ticket forms endpoint makes no mention of pagination. See https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_forms/#list-ticket-forms:~:text=%7D-,List%20Ticket%20Forms,-GET%20/api/v2 

I've tried the per_page parameter on this endpoint and can confirm (on our instance) that the per_page parameter has no effect.

How many ticket forms does your instance have?  And why do you want to limit it to 5 per page?

0


In the same boat as some others.. received an email "Upgrade your SDK libraries to avoid upcoming API rate limits" and "Our records indicate that you use at least one available SDK."

Would be great if you could tell me what we're using... because I have no idea where to begin to look. We're primarily using 3rd party tools.

1


Hi TJ,

Maybe you can start by:

  1. Checking who was granted an API token or oAuth token in your admin center
  2. Checking what apps are installed in your instance

This may give you a clue as to where the requests are coming from.  

If you're using 3rd party tools, they are most likely using the API to create requests.  You may want to contact each of the developers of those 3rd party tools to confirm that they are working to update their code.

 

0


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Walter,

 

Thank you for the wait. The changes have been deployed and the /api/v2/ticket_fields/:ticket_field_id/options now supports Cursor Model. 

1


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi @Zachary Drake,

 

Please raise a ticket using your account. Our Advocacy team will be able to assist on individual account related traffic/usage queries.

0


Hello,

Is it safe to assume that using the Search->find() or ../api/v2/search.json?query={search_string} with page as part of the query params will not be impacted by this change? Especially if the search_string limits the results to under 10,000?

0


Hi AdamB ,

Yes, it appears that the search endpoint only supports offset pagination.

https://developer.zendesk.com/api-reference/ticketing/ticket-management/search/#pagination

 

1


image avatar

Sanjeev Mandalapu

Zendesk Product Manager

Hi Adam,

Search endpoint results are limited to 1000 records or page 100 (with page size 10). So, they wont be impacted by this change.

1


Please sign in to leave a comment.