Retool · JSON Structure

Retool Management Api Structure

JSON structure documenting the key entities, relationships, and data organization of the Retool Management API.

Type: Properties: 0
Admin PanelDashboardInternal ToolsLow CodeNo Code

Retool Management Api Structure is a JSON Structure definition published by Retool.

Meta-schema:

JSON Structure

Raw ↑
{
  "title": "Retool Management API Structure",
  "description": "JSON structure documenting the key entities, relationships, and data organization of the Retool Management API.",
  "version": "1.0.0",
  "entities": {
    "User": {
      "description": "A user account in the organization",
      "primaryKey": "id",
      "keyType": "uuid",
      "fields": ["id", "email", "firstName", "lastName", "isAdmin", "isDisabled", "userType", "createdAt", "updatedAt"],
      "relationships": {
        "groups": { "type": "many-to-many", "entity": "Group", "via": "group_membership" }
      }
    },
    "Group": {
      "description": "A permission group for access control",
      "primaryKey": "id",
      "keyType": "integer",
      "fields": ["id", "name", "createdAt", "updatedAt"],
      "relationships": {
        "members": { "type": "many-to-many", "entity": "User", "via": "group_membership" }
      }
    },
    "App": {
      "description": "A Retool visual application",
      "primaryKey": "id",
      "keyType": "string",
      "fields": ["id", "name", "description", "folderId", "createdBy", "createdAt", "updatedAt"],
      "relationships": {
        "folder": { "type": "many-to-one", "entity": "Folder" },
        "resources": { "type": "many-to-many", "entity": "Resource" }
      }
    },
    "Resource": {
      "description": "A data source connection (database, API, or service)",
      "primaryKey": "id",
      "keyType": "string",
      "fields": ["id", "name", "type", "displayName", "createdAt", "updatedAt"]
    },
    "Folder": {
      "description": "An organizational folder for apps, resources, or workflows",
      "primaryKey": "id",
      "keyType": "string",
      "fields": ["id", "name", "folderType", "parentFolderId", "createdAt"],
      "relationships": {
        "parent": { "type": "many-to-one", "entity": "Folder", "selfReferential": true }
      }
    }
  },
  "endpoints": {
    "users": {
      "list": "GET /v1/users",
      "get": "GET /v1/users/{userId}",
      "create": "POST /v1/users",
      "update": "PUT /v1/users/{userId}",
      "delete": "DELETE /v1/users/{userId}"
    },
    "groups": {
      "list": "GET /v1/groups",
      "create": "POST /v1/groups",
      "addMember": "POST /v1/groups/{groupId}/members",
      "removeMember": "DELETE /v1/groups/{groupId}/members/{userId}"
    },
    "apps": {
      "list": "GET /v1/apps",
      "get": "GET /v1/apps/{appId}",
      "create": "POST /v1/apps",
      "update": "PUT /v1/apps/{appId}",
      "delete": "DELETE /v1/apps/{appId}"
    },
    "resources": {
      "list": "GET /v1/resources"
    },
    "folders": {
      "list": "GET /v1/folders",
      "create": "POST /v1/folders"
    }
  }
}