Clarification Required on 10,000 Record Limit in CRM Search API

Hello Developers.

I hope this message finds you well.

I am currently using the CRM Search API (/crm/v3/objects/contacts/search) to extract contact records from our HubSpot account for integration and analysis purposes. While implementing pagination, we encountered an issue where the API stops returning results after 10,000 records, even though more data exists.

We understand from the developer documentation that there is a 10,000-record limit per search query, but we would like to confirm the following:

Is there any official workaround recommended by HubSpot to fetch more than 10,000 records using the Search API?

Any guidance or best practices you could share for managing large data exports efficiently using the Search API would be greatly appreciated.

Thank you for your support.

Best regards,
Abhishek Kumar Singh.

Hi @AbhishekKumar19
Thank you for reaching out to the Community!
I’d like to invite some community members who are subject matter experts to join this conversation.
@GiantFocal @sylvain_tirreau @SteveHTM - Would you be able to share any insights on this? Your expertise would be greatly appreciated.
Best,
Victor

Hi @AbhishekKumar19.,

Here’s how you can manage (best practices) large data exports using search API:

  • Break the search into chunks using date filters (e.g.,

    createdate

    or

    lastmodifieddate

    ).

  • Use the

    after

    cursor to paginate through each chunk.

  • Keep each query under 10,000 records.

  • Use non-overlapping date ranges to avoid duplicates.

  • Use the Export API if you need the full dataset at once.

  • Only request the fields you need (using

    properties

    ).

  • Handle rate limits and add retries if needed.

  • Log progress and store cursors for safety.

  • For regular syncs, filter only by recently updated records.

If this helps, feel free to mark it as the solution :check_mark: and give it an upvote :+1: !