Back-end response JSON object anatomy

When I export some geometry data from my model I got back a fairly deeply nested JSON object. There is one particular object key I am not sure about.

The key: "fd81d7e13698aaa513aa0e7bae78449b"
This is among the outputs but there is no reference in advance. Is it possible to get know this key before a request? And maybe mapped with the name of the output?

    "outputs": {
        "fd81d7e13698aaa513aa0e7bae78449b": {
            "name": "Bracings",
            "version": "404043142f7b4d6215f78bbffe0fe92e",
            "content": [
                    "format": "data",
                    "data": {
                        "bracings_1": [
                                "type": "line",
                                "data": [
                                "type": "line",

Simply add filter in the call for objects you need, more in the API Reference.

api.scene.getData({name: "Bracings"})

There is a number of articles in the Documentation I can recommend that help you to get familiar with ShapeDiver’s scene architecture and API.

@pavol thank you, but do we have access to scene at the back-end too? I am doing this calls at the back-end API, which has currently a modest documentation through Postman. I am following this doc.

Direct access to the backend is currently limited to exports but as a workaround you can feed the data to an export. More details and future plans are covered in this Forum thread:

thanks @pavol

There is no need to know keys in advance to access Javascript objects, as demonstrated in this simple, very old recursive function that clones JS objects:

jt_.objClone = function(obj) {
	var newObj = {};
	for (var prop in obj) {
		newObj[prop] = (typeof obj[prop] == 'object') ? jt_.objClone(obj[prop]) : obj[prop];
	return newObj;

@Joseph_Oster thanks for your suggestion and workaround. It can be a partial solution for now but shouldn’t be the way forward. The returning object from an export is unnecessarily deeply nested. These keys could be an id field or similar inside the object, and the export geometry objects can live in a simple array we can iterate trough. I hope the SDK mentioned in the other post will produce much flatter response objects.

This is my Python version of using the recursive function, as we run some Flask app in the back-ends:

def key_recursive(d, key):
    if key in d:
        return d[key]
    for k, v in d.items():
        if type(v) is dict:
            value = key_recursive(v, key)
            if value:
                return value

But the problem is, and the same with yours, it fails if it hits a list (array).