Is there a way to add parameters to the API query? [more efficient way of retrieving a single row]

Hi all,
I need to get a specific row from a table but I do not have the rowId. I do however have access to another unique identifier.

Is there a way I can use the queryTables or other API endpoint to get this row in an efficient way? Retrieving 60k+ rows just to get this one row is not ideal.

Thanks in advance

Cor

I guess this is a follow up from your last question :slight_smile:

Short answer is no. The API doesn’t support any filtering options with GET_ALL_ROWS. It’s all or nothing. (I wish it did, and am hopeful that it will at some point).

Can you describe the bigger picture a little bit? - maybe there might be an easier way to get to your end goal. What is your data source - Glide tables only, or something else?

2 Likes

Hi @Darren_Murphy,

Thanks for the reply. While I have been in low-code for a long time this is my first real outing into Glide so just getting into all the good and unfortunately not-so-good things about it.

Still working on your suggestion in the other post, was just curious on the overall api capability or lack thereof.

Thanks again for responding so quickly and for sharing so openly.

Best
Cor

1 Like

Hi Folks,

New to Glide but long time Zapier user. I ported the back-end DBs from Air-table to Glide tables (not an easy migration BTW) when I heard you had an API. My app requires some logic that updates fields in 2 different tables from a submit action in one form. This would be easy to do in a Zap if the API followed some CRUD or REST patterns. My bad for not checking sooner, but your API is literally unusable with Zapier in this common use case:

  1. +1 to the OP’s question. Having to dump the entire DB just to find your internal row identifiers is not workable and cannot scale.

  2. Returning the data as CSVs instead or proper JSON means that I’d have to write some hacky parsers in Python to make the Zap work.

So 100% supportive of the low-code/no-code paradigm, but you really need a decent API for the edge cases. If we could pass parameters to the queryTables end-point based on fields in the table and if you returned a JSON data structure that Zapier could parse, that would be amazing.

I’m off to move my DBs out into something that Zapier can process.

Filterable queries are most likely coming, we just don’t know exactly when.
Believe me, you’re not the only one that wants this :slight_smile:

Where did you get this idea?
Anyway, that’s simply not true. All Glide API calls return properly structured JSON.

1 Like

Zapier puts the output in line-oriented csv (i.e. one comma-delimited line for each field in the DB).
Do you know of a way to pass a single field’s data to a subsequent step in the Zap without parsing the string and finding the element that you need.

For example, the output in Zapier comes out like this:

Row 1: “bill, mike, joe”
Row 2: “smith, jones, greene”

ah, I see.
So that’s a Zapier issue, not a Glide issue. Sorry, I’m not a Zapier user, but I’m sure somebody else will be able to advise on that.

2 Likes

Gotcha, the issue raised by the OP is the other blocker. Most DB APIs have this workflow to edit a record:

  1. Call the Query API with query parameters based on fields in the DB and grab the recordID from the output
  2. Use the recordID to make a call back to the API to update the record.

We can’t do that with the Glide Table API. We would first have to pull the entire DB, then (on the Zapier side) put it all into something that could be indexed (i.e. array), figure out which field identifiers correspond to the fields we need to search, make a search function to find the record we need, then get the recordID.

yep, I agree, it’s a PITA.
I’ve been badgering Glide about this for some time now.
As I mentioned earlier, I’ve been told it’s most likely coming, it’s just a matter of how long it takes to bubble to the top of the list.

1 Like

Just curious since I never used it, does it cost 1 update to query the whole table, or X updates with X being the rows count of that table?

I assume it’s just a single update, or maybe a handful.
It’s definitely not one update per row, otherwise I’d be racking up millions up updates per month :rofl:
(I’m not)

1 Like

Yes, this will help you: 🆕 Call API: call custom APIs, and return data back to your app