> For the complete documentation index, see [llms.txt](https://docs.testmace.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.testmace.com/node-types/api-description/apifolder.md).

# ApiFolder

An **ApiFolder** is identical to a Follder node and is used to group nodes of another types (ApiRoute in this case).

There are two ways to create an **ApiFolder** node:

* Adding it from the [ApiRootFolder](/node-types/api-description/apirootfolder.md) node context menu;
* Using import from API description format.

This is how an ApiFolder node looks like in the project tree:

![An ApiFolder node in the project tree](/files/-LgsCm8cE2tYZ-qYFFWc)

An **ApiFolder** node has the following context menu:

![The ApiFolder context menu](/files/-LlfflYo-YCjuMYdtA1b)

* **Add node.** Click on it to add a child node. You can choose a node type in the submenu.
* **Rename.** Change the node name.
* **Duplicate.** Make a copy of the node. The new node will be named NodeName \[Copy \[number]].
* **Remove node.** Use it to delete the node.
* **Show in explorer.** Open the folder with the node in the file manager.

‌The **ApiFolder** node tab has the following interface:

![The ApiFolder node tab interface](/files/-LgsGJ-A7inEue6zqfAI)

In the screenshot you can see the following parts of the tab:

* The [user-defined variables](/variables/user-variables.md) managing dialog;
* Child nodes list.

### File Representation

An **ApiFolder** node is a folder with the node name, containing the index.yml file with the following format:

```javascript
{
  "type": "object",
  "properties": {
    "type": {
      "description": "Type of ApiFolder node",
      "const": "ApiFolder",
      "type": "string"
    },
    "children": {
      "description": "List of children names",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "variables": {
      "$ref": "#/definitions/NodeVariables",
      "description": "Node variables dictionary"
    },
    "name": {
      "description": "Node name",
      "type": "string"
    }
  },
  "required": [
    "children",
    "name",
    "type",
    "variables"
  ],
  "definitions": {
    "NodeVariables": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```
