{
  "name": "GetFigmaFileNodes",
  "fully_qualified_name": "FigmaApi.GetFigmaFileNodes@0.1.0",
  "description": "Retrieve nodes and metadata from a Figma file.\n\nUse this tool to get detailed information about specific nodes in a Figma file, including metadata like name, last modified date, thumbnail URL, editor type, version, and link access permissions. Also retrieves document structure, component mappings, and styles. Useful for accessing and analyzing Figma design elements.",
  "toolkit": {
    "name": "ArcadeFigmaApi",
    "description": null,
    "version": "0.1.0"
  },
  "input": {
    "parameters": [
      {
        "name": "node_ids_to_retrieve",
        "required": true,
        "description": "A comma-separated list of Figma node IDs to retrieve as JSON.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A comma separated list of node IDs to retrieve and convert."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "ids"
      },
      {
        "name": "figma_file_key",
        "required": true,
        "description": "The file or branch key from which to export JSON data in Figma.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "File to export JSON from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the branch key."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "file_key"
      },
      {
        "name": "specific_version_id",
        "required": false,
        "description": "Specify a version ID to retrieve a particular version of the Figma file. If omitted, the current version is retrieved.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A specific version ID to get. Omitting this will get the current version of the file."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "version"
      },
      {
        "name": "node_tree_depth",
        "required": false,
        "description": "Positive integer indicating how deep into the node tree to traverse from the starting node. A value of 1 returns only immediate children. Leaving it unset returns all nodes.",
        "value_schema": {
          "val_type": "number",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Positive integer representing how deep into the node tree to traverse. For example, setting this to 1 will return only the children directly underneath the desired nodes. Not setting this parameter returns all nodes.\n\nNote: this parameter behaves differently from the same parameter in the `GET /v1/files/:key` endpoint. In this endpoint, the depth will be counted starting from the desired node rather than the document root node."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "depth"
      },
      {
        "name": "export_vector_data",
        "required": false,
        "description": "Set to \"paths\" to include vector data in the response.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Set to \"paths\" to export vector data."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "geometry"
      },
      {
        "name": "include_plugin_data",
        "required": false,
        "description": "Comma-separated plugin IDs and/or 'shared' to include plugin-related data in results.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A comma separated list of plugin IDs and/or the string \"shared\". Any data present in the document written by those plugins will be included in the result in the `pluginData` and `sharedPluginData` properties."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "plugin_data"
      }
    ]
  },
  "output": {
    "description": "Response from the API endpoint 'getFileNodes'.",
    "available_modes": [
      "value",
      "error",
      "null"
    ],
    "value_schema": {
      "val_type": "json",
      "inner_val_type": null,
      "enum": null,
      "properties": null,
      "inner_properties": null,
      "description": null
    }
  },
  "requirements": {
    "authorization": {
      "provider_id": "arcade-figma",
      "provider_type": "oauth2",
      "id": null,
      "oauth2": {
        "scopes": [
          "file_content:read"
        ]
      }
    },
    "secrets": null,
    "metadata": null
  },
  "deprecation_message": null,
  "metadata": {
    "object_type": "api_wrapper_tool",
    "version": "1.0.0",
    "description": "Tools that enable LLMs to interact directly with the figma API."
  },
  "http_endpoint": {
    "metadata": {
      "object_type": "http_endpoint",
      "version": "1.1.0",
      "description": ""
    },
    "url": "https://api.figma.com/v1/files/{file_key}/nodes",
    "http_method": "GET",
    "headers": {
      "Content-Type": "application/json"
    },
    "parameters": [
      {
        "name": "ids",
        "tool_parameter_name": "node_ids_to_retrieve",
        "description": "A comma separated list of node IDs to retrieve and convert.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A comma separated list of node IDs to retrieve and convert."
        },
        "accepted_as": "query",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "version",
        "tool_parameter_name": "specific_version_id",
        "description": "A specific version ID to get. Omitting this will get the current version of the file.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A specific version ID to get. Omitting this will get the current version of the file."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "depth",
        "tool_parameter_name": "node_tree_depth",
        "description": "Positive integer representing how deep into the node tree to traverse. For example, setting this to 1 will return only the children directly underneath the desired nodes. Not setting this parameter returns all nodes.\n\nNote: this parameter behaves differently from the same parameter in the `GET /v1/files/:key` endpoint. In this endpoint, the depth will be counted starting from the desired node rather than the document root node.",
        "value_schema": {
          "val_type": "number",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Positive integer representing how deep into the node tree to traverse. For example, setting this to 1 will return only the children directly underneath the desired nodes. Not setting this parameter returns all nodes.\n\nNote: this parameter behaves differently from the same parameter in the `GET /v1/files/:key` endpoint. In this endpoint, the depth will be counted starting from the desired node rather than the document root node."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "geometry",
        "tool_parameter_name": "export_vector_data",
        "description": "Set to \"paths\" to export vector data.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Set to \"paths\" to export vector data."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "plugin_data",
        "tool_parameter_name": "include_plugin_data",
        "description": "A comma separated list of plugin IDs and/or the string \"shared\". Any data present in the document written by those plugins will be included in the result in the `pluginData` and `sharedPluginData` properties.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A comma separated list of plugin IDs and/or the string \"shared\". Any data present in the document written by those plugins will be included in the result in the `pluginData` and `sharedPluginData` properties."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "file_key",
        "tool_parameter_name": "figma_file_key",
        "description": "File to export JSON from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the branch key.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "File to export JSON from. This can be a file key or branch key. Use `GET /v1/files/:key` with the `branch_data` query param to get the branch key."
        },
        "accepted_as": "path",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      }
    ],
    "documentation_urls": [],
    "secrets": [
      {
        "arcade_key": "auth_token",
        "parameter_name": "Authorization",
        "accepted_as": "header",
        "formatted_value": "Bearer {authorization}",
        "description": "The OAuth token to use for authentication.",
        "is_auth_token": true
      }
    ],
    "request_body_spec": null,
    "use_request_body_schema_mode": false,
    "validate_request_body_schema": false
  }
}
