Early feedback for "External API Loops"

Hey @Daniele :slightly_smiling_face:

I was SO excited when I found this video yesterday:

This is absolutely the feature I´ve been waiting for the most! In the past, I had many situations where my clients wanted me to add weather data via API to their website, Google opening hours, or other dynamic content. I can´t wait for this feature to be ready!!

However, because I´m so excited, I wanted to share some feedback from the current state of JetEngine and their approach. I´m not a programmer, but I noticed in the past that some APIs, like the one from openweathermap.org, did not work with JetEngine because they were in the wrong “format,” as described in this GitHub post:
JetEngine 3.2.3.2 REST API Endpoints not working with simple json data object without "Item path" · Issue #7023 · Crocoblock/suggestions · GitHub

To be more specific, JetEngine has issues processing JSON responses that are structured as simple objects without a specific “item path.” JetEngine expects either an array or an object with a clearly defined subpath for data extraction. However, APIs like openweathermap.org often return a simple JSON object without such a path, making them incompatible with JetEngine’s approach.

Since I encountered these limitations myself, I wanted to ask if the Bricksforge solution will support such JSON structures, as this is very important for utilizing certain APIs. It would be unfortunate if users (including myself) ran into the same compatibility problems as with JetEngine.

For example, a response from openweathermap.org might look like this:

{
  "coord": { "lon": 10.99, "lat": 44.34 },
  "weather": [
    { "id": 501, "main": "Rain", "description": "moderate rain", "icon": "10d" }
  ],
  "main": {
    "temp": 298.48,
    "pressure": 1015,
    "humidity": 87
  }
}

JetEngine has known issues to extract the temperature, humidity, or weather description because it expects a more structured data path.

Will Bricksforge be able to handle such JSON responses flexibly, allowing users to define how to extract the required data dynamically?

That´s pretty much everything :slightly_smiling_face: Again, I´m SUPER excited about this feature!!! :heart:

We have already taken the handling of such a structure into account in the current process. If Bricksforge recognizes such a structure, it is automatically converted into an array in the background, which then has a corresponding entry. From then on, the data can be used as usual in the query loops.

To use the weather in your example, the dynamic data tag would look like this: brf_title_of_api_main_temp :slight_smile:

2 Likes

Wow, that sounds absolutely amazing! I can’t even begin to express how happy I am to hear this! The fact that Bricksforge automatically converts such JSON structures into a usable format is a game-changer. This is exactly what I was hoping for, and it will make working with APIs so much easier.

Honestly, your support and the way you and the Bricksforge team approach things is simply outstanding. I’ve never experienced this level of helpfulness and dedication anywhere else! You always take user feedback seriously and provide thoughtful solutions—it’s truly inspiring! Thank you so much for your continuous efforts and for making Bricksforge such a powerful tool. :heart:

One quick follow-up question: Does this automatic conversion also work for APIs like Google Places, including Google opening hours and Google Reviews, where nested JSON structures or different response formats might appear? That would be incredibly useful!

Again, a huge THANK YOU for everything you do! I’m super excited about this feature and can’t wait to test it out! :blush:

Well, I think this addition to BricksForge is going to be amazing. I’ve been able to pull data from weather stack just fine!

It seems loop handling isn’t ready for production yet.

A few observations below and I’m sure you’re aware. Sorry if I’m being pedantic in pointing them out.

  • Tokens/keys should be obscured/obfuscated in the backend. They’re clear as of bf 3.0.7
  • Lack of query options/parameters in the builder. You can only choose the query for your API connection but you can’t set the number of posts to display.
  • When including nested data from the request payload it ads a lot of other data to pick from, feels messy.
  • I’m trying to query data from eventbrite and I seem to have troubles displaying data properly. I’d share a video but my tokens are exposed. =)

Really excited for this tool to mature. =) Well done!

1 Like

Hey :slight_smile:

Thanks very much for your feedback!

  1. All your keys and api data are stored encrypted in the database. Before serving the data to the client, Bricksforge decrypt your keys. This is the reason why you are seeing them. That should be fine I think. Or do you need additional security at the expense of the UX? In this case, however, this only affects the tokens, as Bricksforge cannot know which params are sensitive and which are not. Each API expects different data in a different format.

  2. Query Options are not possible due a Bricks Limitation regarding custom query loops. All settings must be made in the Bricksforge backend. Also, since each API is different, a “result count” field would not make sense and would not work. Each API handles limits differently and regulates this via query params or headers.

  3. In a future update, there will be an option to select only nested data you want. For example, if you only need a nested array “users” and you want to ignore all others, you`ll have the possibility to do this.

Hope those informations are helping :slight_smile: I`m glad that you like that new feature!

1 Like

Thanks, Daniele!

In messing around further, it makes sense that things like sorting and the number of items I return should be handled within the API query builder interface. =) So I am good there.

One thing I’d like to see is the ability to format/manipulate data that gets returned.

For instance, date related tags {brf_api_date_tag:F j, Y} to be able to manipulate how date is displayed on the front end.
Being able to do {brf_api_text_data:30} to manipulate/trim text content would also be super helpful.

Also, for nested data, I was able to get at the data I needed from the main endpoint, so I didn’t need to use nested data but cool that the option is there.

I built out a small plugin that pulls in data from eventbite but this query builder I’ve accomplished the same thing with like a fraction of the effort. This feature is a banger!

One thing I notice and I’m not sure if this is an issue with that feature but
This works well to produce an image from the API payload I receive = {featured_image @fallback-image:‘{brf_api_ev_events_logo_original_url}’} - However, it’s a workaround because {brf_api_ev_events_logo_original_url} doesn’t work in the bricks image element. In the src I only see the opening curly brace. If I manually write out the code element then that also seems to work just fine. I think I’ll report to bricks team also.

Yeah, this is cool: https://imgcaps.s3.us-west-1.amazonaws.com/test_query_-_Stage_Time_Trivia_2025-04-20_12-10-57.jpg - just data pulled from the Eventbrite API.

Also, I seem to not be able to choose archive templates to run the API query on? I have a template built for an archive and it’s not selectable from templates. Single post type templates are available however.

ended up creating a page for the archive instead to work around that limitation.

I really, really appreciate your feedback! :slight_smile: Depending on how the future is going with the API Query Builder, I definitely will consider this :slight_smile:

Just an info regarding the image element: you need to include the Dynamic Data Tag in in the “Custom Url” control. Reference: NO BUG: Dynamic Image Bug? - Bugs - Bricks Community Forum