What's the best way to fetch all Airtable records in an Azure Synapse Analytics pipeline?

Hey everyone,

I’m working on an Azure Synapse pipeline and trying to extract data from Airtable. The issue is that only 100 records are being loaded into my data sink, despite having set up the REST integration with the proper API key. I suspect there’s a configuration or setting that’s limiting the import.

Can anyone suggest a method to ensure all records are imported into Azure Synapse? Any advice on an alternative approach would be greatly appreciated. Thanks in advance for your help!

Having worked extensively with Airtable and Azure Synapse, I can share a trick that’s proven effective. Instead of relying solely on the REST API, consider using the Airtable JavaScript library within an Azure Function. This approach allows for more flexible data retrieval, including handling pagination seamlessly.

Set up an Azure Function that uses the Airtable JS library to fetch all records. Then, configure your Synapse pipeline to trigger this function and collect the output. This method not only bypasses the 100-record limit but also provides better error handling and retry mechanisms.

Remember to implement proper throttling to respect Airtable’s rate limits. In my projects, I’ve found this method to be more reliable and easier to maintain in the long run, especially when dealing with large datasets or frequent updates.

I encountered a similar issue with Airtable’s API where the default pagination limits the response to 100 records. In my experience, the solution was to implement pagination by manually incrementing the offset parameter in your API calls. The process involves making repeated calls and increasing the offset until fewer than 100 records are returned, which signals that all data has been retrieved. This method, while perhaps a bit slower for large datasets, reliably ensures that all records are fetched in the pipeline.

hey there! i’ve dealt with this before. try using the pageSize parameter in ur API call. set it to a high number like 10000. that should grab way more records in one go. also, make sure ur using the correct base ID and table name in the URL. good luck!