The algorithm for executing graphs is actually very simple. Apibot first picks the starting node (which is the only node in the graph without predecessors), invokes the node’s function and then concurrently repeats this procedure for every successor of the current node. In the image above, the first node is executed first, followed by second and finally third. If a node has more than one predecessor, then the node will wait until all predecessors have been executed. »


A node is the basic building block of an Apibot test. Every node has a different function which is determined by node’s parent graph. Node Parent or Parent Graph Every node in Apibot is an instance of either a builtin graph such as the HTTP request or a user made graph (e.g. a graph made by you!). A node’s behavior is determined by the node’s parent. If node A’s parent is B we say that node A is an instance of graph B. »


The Scope is Apibots primary and only data-structure. It is defined as a map strings to anything. You can generally think of the Scope as a Javascript object. Here are a few examples of valid scopes. // ✅ a valid scope {} // ✅ a valid scope { username: "bob" } // ✅ valid scope { foo: { bar: [1,2,3] }} // ❌ an invalid scope null // ❌ an invalid scope 1 // ❌ an invalid scope [ { foo: 1 } ] Every node takes the scope as input and outputs a new scope. »