Pagination of requests, plus rate limits

Hello

We have a scheduled task which runs daily which synchronises invoices across platforms. In order to do this it needs to download all invoices. This currently results in 10 HTTP requests to collect 1,000 invoices. We’ve just reached the thousand invoice mark for the time period that we need to synchronise across.

Can I suggest that alongside your introduction of rate limits that you allow us to collect more data in a single request?

Regards

Daniel

Hi Daniel,

I’m afraid, increasing the maximum limit of records per request won’t be ideal. As mentioned, 10 API requests to fetch the ~1000 invoices should be fine as long as they are timed properly.

However, we are pretty close to add filter support based on updated_at attribute. This will allow you to fetch all invoices which changed since a particular timestamp. By keeping a track of the last sync’d time, you could easily fetch delta records to sync data at your end. Does this sound helpful?

I’ll be back in touch when we release the update.

Regards,

Anup Narkhede

That wouldn’t be helpful because then I’d have to download and store all invoices. I want you to do that (that’s what I pay you for).

As it happens it’d be immensely useful if you added the “overdue” filter to invoices. At the moment t I have to go through all invoices returned by filter “open or overdue” and see if it is overdue or not. You know it’s overdue because you show me on red when it is. Can we have this data on the API filter? This would significantly reduce the amount of invoices I’d need to fetch every day (to see if I need to put the account on stop).

Hey Daniel,

You should be able to get overdue invoices by using the overdue view:

https://api.freeagent.com/v2/invoices?view=overdue

(which is documented here)

Cheers,
James

That’s useful, thanks. That feature wasn’t in your Zapier.com integration so I assumed it wasn’t in your current one either.

Hi Daniel,

Apologies, perhaps I misunderstood your use case. You mentioned ‘synchronising invoices across platforms’ and I assumed that you were storing duplicate copies of these 1000 invoices.

We added open and overdue filters yesterday as James has already pointed out.

With the upcoming support for date filters based on updated_at attribute, you’d be able to do something like:
https://api.freeagent.com/v2/invoices?view=overdue&updated_since=[timestamp]

This will allow you to fetch invoices changed since the ‘last synced at timestamp’, avoiding a need to compare all (~1000) invoices.

I hope this helps.

Regards,

Anup Narkhede