### GET /api/v3/meta/workspaces Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of all workspaces accessible to the user. **Note**: Workspace APIs are available only with self-hosted **Enterprise** plans and cloud-hosted **Enterprise** plans. ```markdown ### Responses #### 200 - Workspaces retrieved successfully. **WorkspaceV3ListResponse** - **list** (array (WorkspaceV3)) (required): List of workspaces Array items: - **id** (string) (required): Unique identifier for the workspace - **title** (string) (required): Title of the workspace - **org_id** (string): Organization identifier (required for cloud, absent for on-prem EE) - **created_at** (string (date-time)) (required): Timestamp when the workspace was created - **updated_at** (string (date-time)) (required): Timestamp when the workspace was last updated #### 400 - Bad request. Bad request. #### 500 - The server encountered an unexpected error while processing the request. The server encountered an unexpected error while processing the request. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/workspaces" ``` ``` -------------------------------- ### GET /api/v3/meta/tokens Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of all API tokens for the organization. **Note**: API Token APIs are available only with self-hosted **Enterprise** plans and cloud-hosted **Enterprise** plans. > **Beta**: These APIs are currently in beta and subject to change in future releases. ```markdown ### Responses #### 200 - List of API tokens - **list** (array (ApiTokenV3)) Array items: - **id** (integer) (required): Token ID (example: 5) - **title** (string) (required): Token title / description (example: "Github Integration") - **created_at** (string (date-time)) (required): Token creation timestamp (example: "2025-12-30 15:17:24+00:00") - **updated_at** (string (date-time)) (required): Token last update timestamp (example: "2025-12-30 15:17:24+00:00") #### 401 - response #### 403 - response #### 500 - response ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/tokens" ``` ``` -------------------------------- ### API Overview: NocoDB v3 Source: https://nocodb.com/apis/v3/swagger-v3.json NocoDB API Documentation ```yaml # NocoDB v3 # Version: 1.0.0 NocoDB API Documentation # Base URL: https://app.nocodb.com ``` -------------------------------- ### GET /api/v3/meta/workspaces/{workspaceId}/teams/{teamId} Source: https://nocodb.com/apis/v3/swagger-v3.json Fetch details of a specific team ```markdown ### Parameters - **workspaceId** (string, path, required): Workspace ID - **teamId** (string, path, required): Team ID - **include_workspace** (string, query, optional): Include workspace teams ### Responses #### 200 - Team details **TeamDetailV3** - **title** (string) (required): Team name (example: "Design Team") - **icon** (string,null): Team icon (emoji or icon identifier) (example: "🎨") - **icon_type** (string (EMOJI|ICON)) ("EMOJI"|"ICON") - **badge_color** (string): Team badge color (hex code) (example: "#FF5733") - **members** (array (TeamMemberV3Response)) (required): Team members Array items: - **user_email** (string (email)) (required): User email address (example: "user@nocodb.com") - **user_id** (string) (required): User ID (example: "id") - **team_role** (string (member|owner)) (required): Team role (example: "member") ("member"|"owner") - **inherited_members** (array (InheritedTeamMemberV3)): Members inherited from ancestor teams Array items: - **user_email** (string) (required): Member email address (example: "user@example.com") - **user_id** (string) (required): Member user ID (example: "usr_xxxx") - **team_role** (string (owner|member)) (required): Member role in the ancestor team (example: "member") ("owner"|"member") - **inherited_from_team_id** (string) (required): ID of the ancestor team this member is inherited from (example: "tm_xxxx") - **inherited_from_team_title** (string) (required): Title of the ancestor team this member is inherited from (example: "Engineering") ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/workspaces/{workspaceId}/teams/{teamId}?include_workspace=string" ``` ``` -------------------------------- ### Schema: DocumentCreate Source: https://nocodb.com/apis/v3/swagger-v3.json Request body for creating a document. ```markdown ## Schema: DocumentCreate Request body for creating a document. **Type:** object - **title** (string): Title of the document. Defaults to 'Untitled' if omitted. - **content** (object): rich-text JSON document content. - **meta** (object): Arbitrary metadata (icon, cover image, settings, etc.). - **parent_id** (string): Parent document ID. null or omitted for root-level documents. ``` -------------------------------- ### GET /api/v3/meta/bases/{baseId}/fields/{fieldId} Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve the details of a specific field. ```markdown ### Parameters - **baseId** (string, path, required): Unique identifier for the base. - **fieldId** (string, path, required): Unique identifier for the field being updated. ### Responses #### 200 - Field details are retrieved. **Field** - **id** (string): Unique identifier for the field. - **title** (string): Title of the field. - **type** (unknown) ("SingleLineText") - **description** (string,null): Description of the field. - **default_value** (string,boolean,number): Default value for the field. Applicable for SingleLineText, LongText, PhoneNumber, URL, Email, Number, Decimal, Currency, Percent, Duration, Date, DateTime, Time, SingleSelect, MultiSelect, Rating, Checkbox, User and JSON fields. - **unique** (boolean): Enable unique constraint for the field. When enabled, the field will only accept unique values (no duplicates allowed). Note: Unique constraint is only supported for NC-DB (not external databases) and is mutually exclusive with default values. Supported field types: SingleLineText, PhoneNumber, URL, Email, Number, Decimal, Currency, Percent, Date, DateTime and Time #### 404 - Field not found. Field not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{baseId}/fields/{fieldId}" ``` ``` -------------------------------- ### GET /api/v3/meta/bases/{baseId}/tables/{tableId} Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve the details of a specific table. ```markdown ### Parameters - **tableId** (string, path, required): Unique identifier for the table. - **baseId** (string, path, required): Unique identifier for the base. ### Responses #### 200 - Table details are retrieved. **Table** - **id** (string) (required): Unique identifier for the table. - **source_id** (string): Unique identifier for the data source. This information will be included only if the table is associated with an external data source. - **base_id** (string) (required): Unique identifier for the base to which this table belongs to. - **title** (string) (required): Title of the table. - **description** (string): Description of the table. - **display_field_id** (string) (required): Unique identifier for the display field of the table. First non system field is set as display field by default. - **workspace_id** (string) (required): Unique identifier for the workspace to which this base belongs to. - **fields** (array (CreateField)) (required): List of fields associated with this table. Array items: - **type** (string (SingleLineText|LongText|PhoneNumber|URL|Email|Number|Decimal|Currency|Percent|Duration|Date|DateTime|Time|SingleSelect|MultiSelect|Rating|Checkbox|Attachment|Geometry|Links|Lookup|Rollup|Button|Formula|Barcode|Year|QrCode|CreatedTime|LastModifiedTime|CreatedBy|LastModifiedBy|LinkToAnotherRecord|User|JSON)) (required): Field data type. ("SingleLineText"|"LongText"|"PhoneNumber"|"URL"|"Email"|"Number"|"Decimal"|"Currency"|"Percent"|"Duration"|"Date"|"DateTime"|"Time"|"SingleSelect"|"MultiSelect"|"Rating"|"Checkbox"|"Attachment"|"Geometry"|"Links"|"Lookup"|"Rollup"|"Button"|"Formula"|"Barcode"|"Year"|"QrCode"|"CreatedTime"|"LastModifiedTime"|"CreatedBy"|"LastModifiedBy"|"LinkToAnotherRecord"|"User"|"JSON") - **id** (string): Unique identifier for the field. - **title** (string) (required): Title of the field. - **description** (string,null): Description of the field. - **default_value** (string,boolean,number): Default value for the field. Applicable for SingleLineText, LongText, PhoneNumber, URL, Email, Number, Decimal, Currency, Percent, Duration, Date, DateTime, Time, SingleSelect, MultiSelect, Rating, Checkbox, User and JSON fields. - **unique** (boolean): Enable unique constraint for the field. When enabled, the field will only accept unique values (no duplicates allowed). Note: Unique constraint is only supported for NC-DB (not external databases) and is mutually exclusive with default values. Supported field types: SingleLineText, PhoneNumber, URL, Email, Number, Decimal, Currency, Percent, Date, DateTime and Time - **views** (array (ViewSummary)) (required): List of views associated with this table. Array items: - **id** (string (uuid)): Unique identifier for the view. - **title** (string): Name of the view. - **view_type** (string (grid|gallery|kanban|calendar|form|map)): Type of the view. ("grid"|"gallery"|"kanban"|"calendar"|"form"|"map") #### 404 - Table not found. Table not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{baseId}/tables/{tableId}" ``` ``` -------------------------------- ### POST /api/v3/docs/{baseId} Source: https://nocodb.com/apis/v3/swagger-v3.json Create a new document in a base. If no `title` is provided, defaults to "Untitled". If no `content` is provided, defaults to an empty document. To create a child document, pass the `parent_id` of the parent document. Documents API is available on **Business** plan and above (Cloud) or with an **Enterprise** license (self-hosted). ```markdown ### Parameters - **baseId** (string, path, required): Unique identifier for the base. ### Request Body **Content-Type:** application/json - **title** (string): Title of the document. Defaults to 'Untitled' if omitted. - **content** (object): rich-text JSON document content. - **meta** (object): Arbitrary metadata (icon, cover image, settings, etc.). - **parent_id** (string): Parent document ID. null or omitted for root-level documents. ### Responses #### 200 - Document created successfully. **Document** - **id** (string) (required): Unique document identifier. - **base_id** (string) (required): Base this document belongs to. - **title** (string) (required): Document title. - **content** (object) (required): rich-text JSON document content. - **meta** (object): Document metadata (icon, cover, lock, settings). - **order** (number) (required): Sort order among siblings. - **parent_id** (string) (required): Parent document ID. null for root documents. - **has_children** (boolean) (required): Whether this document has child documents. - **version** (integer) (required): Optimistic concurrency version counter. - **comment_count** (integer): Number of comments on this document. - **created_by** (string): User ID of the document creator. - **updated_by** (string): User ID of the last editor. - **created_at** (string (date-time)) (required): Creation timestamp. - **updated_at** (string (date-time)) (required): Last update timestamp. #### 400 - response #### 401 - response #### 403 - response #### 404 - response #### 500 - response ### Example Usage ```bash curl -X POST "https://app.nocodb.com/api/v3/docs/{baseId}" \ -H "Content-Type: application/json" \ -d '{ "title": "string", "content": "value", "meta": "value", "parent_id": "string" }' ``` ``` -------------------------------- ### Schema: Workspace Source: https://nocodb.com/apis/v3/swagger-v3.json Basic workspace information ```markdown ## Schema: Workspace Basic workspace information **Type:** object - **id** (string) (required): Unique identifier for the workspace - **title** (string) (required): Title of the workspace - **created_at** (string (date-time)) (required): Timestamp when the workspace was created - **updated_at** (string (date-time)) (required): Timestamp when the workspace was last updated ``` -------------------------------- ### GET /api/v3/meta/workspaces/{workspaceId}/teams Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of teams associated with a Workspace or ORG ```markdown ### Parameters - **workspaceId** (string, path, required): Workspace ID ### Responses #### 200 - List of teams - **list** (array (TeamV3)) (required) Array items: - **id** (string) (required): Unique team identifier (example: "t12345") - **title** (string) (required): Team name (example: "Design Team") - **icon** (string,null): Team icon (emoji or icon identifier) (example: "🎨") - **icon_type** (string (EMOJI|ICON)) ("EMOJI"|"ICON") - **badge_color** (string): Team badge color (hex code) (example: "#FF5733") - **members_count** (integer) (required): Number of team members (example: 10) - **managers_count** (integer): Number of team managers (example: 2) - **fk_org_id** (string): Organization ID (for Cloud Enterprise) - **fk_workspace_id** (string): Workspace ID (for other plans) - **created_at** (string (date-time)): Team creation timestamp - **updated_at** (string (date-time)): Team last update timestamp - **fk_parent_team_id** (string,null): Parent team ID. Null = root team. - **depth** (integer): Depth in the team tree. Root teams have depth 0. (example: 1) - **path** (string): Materialized path for efficient ancestor/descendant queries. (example: "/eng/fe/web") - **is_member** (boolean): Whether the requesting user is a member of this team. - **managers** (array (string)): List of user IDs who are owners/managers of this team. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/workspaces/{workspaceId}/teams" ``` ``` -------------------------------- ### Schema: WorkspaceV3Create Source: https://nocodb.com/apis/v3/swagger-v3.json Workspace creation request ```markdown ## Schema: WorkspaceV3Create Workspace creation request **Type:** object - **title** (string) (required): Title of the workspace - **org_id** (string): Organization identifier (required for cloud, absent for on-prem EE) ``` -------------------------------- ### GET /api/v3/meta/bases/{base_id}/tables Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve list of all tables within the specified base. ```markdown ### Parameters - **base_id** (string, path, required): Unique identifier for the base. ### Responses #### 200 - List of tables retrieved. **TableList** - **list** (array (object)) (required) Array items: - **id** (string) (required): Unique identifier for the table. - **title** (string) (required): Title of the table. - **description** (string,null): Description of the table. - **meta** (object) - **icon** (string): Icon prefix to the table name that needs to be displayed in-lieu of the default table icon. - **base_id** (string) (required): Unique identifier for the base to which this table belongs to. - **source_id** (string): Unique identifier for the data source. This information will be included only if the table is associated with an external data source. - **workspace_id** (string) (required): Unique identifier for the workspace to which this base belongs to. #### 404 - Base not found. Base not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{base_id}/tables" ``` ``` -------------------------------- ### GET /api/v3/meta/workspaces/{workspaceId}/bases Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of bases associated with a specific workspace. ```markdown ### Parameters - **workspaceId** (string, path, required): Unique identifier for the workspace. ### Responses #### 200 - The request was successful, and a list of bases is returned. - **list** (array (Base)): List of bases. Array items: - **id** (string) (required): Unique identifier for the base. - **title** (string) (required): Title of the base. - **meta** (object) (required) - **icon_color** (string): Specifies the color of the base icon using a hexadecimal color code (e.g., `#36BFFF`) - **created_at** (string (date-time)) (required): Timestamp of when the base was created. - **updated_at** (string (date-time)) (required): Timestamp of when the base was last updated. - **workspace_id** (string) (required): Unique identifier for the workspace to which this base belongs to. - **sources** (array (object)): List of data sources associated with this base. This information will be included only if one or more external data sources are associated with the base. Array items: - **id** (string) (required): Unique identifier for the data source. - **title** (string) (required): Title of the data source. - **type** (string) (required): Type of the data source (e.g., pg, mysql). - **is_schema_readonly** (boolean) (required): Indicates if the schema in this data source is read-only. - **is_data_readonly** (boolean) (required): Indicates if the data (records) in this data source is read-only. - **integration_id** (string) (required): Integration ID for the data source. #### 500 - The server encountered an unexpected error while processing the request. The server encountered an unexpected error while processing the request. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/workspaces/{workspaceId}/bases" ``` ``` -------------------------------- ### POST /api/v3/meta/workspaces/{workspaceId}/teams Source: https://nocodb.com/apis/v3/swagger-v3.json Create a new team ```markdown ### Parameters - **workspaceId** (string, path, required): Workspace ID ### Request Body **Content-Type:** application/json - **title** (string) (required): Team name (example: "Design Team") - **icon** (string,null): Team icon (emoji or icon identifier) (example: "🎨") - **icon_type** (string (EMOJI|ICON)) ("EMOJI"|"ICON") - **badge_color** (string): Team badge color (hex code) (example: "#FF5733") - **members** (array (TeamMemberV3)): Initial team members Array items: - **user_id** (string) (required): User ID (example: "xxxx") - **team_role** (string (member|owner)) (required): Team role (example: "member") ("member"|"owner") - **parent_team_id** (string,null): Parent team ID. Null or omitted = root team. (example: "tmd_abc123") ### Responses #### 200 - Created team **TeamV3** - **id** (string) (required): Unique team identifier (example: "t12345") - **title** (string) (required): Team name (example: "Design Team") - **icon** (string,null): Team icon (emoji or icon identifier) (example: "🎨") - **icon_type** (string (EMOJI|ICON)) ("EMOJI"|"ICON") - **badge_color** (string): Team badge color (hex code) (example: "#FF5733") - **members_count** (integer) (required): Number of team members (example: 10) - **managers_count** (integer): Number of team managers (example: 2) - **fk_org_id** (string): Organization ID (for Cloud Enterprise) - **fk_workspace_id** (string): Workspace ID (for other plans) - **created_at** (string (date-time)): Team creation timestamp - **updated_at** (string (date-time)): Team last update timestamp - **fk_parent_team_id** (string,null): Parent team ID. Null = root team. - **depth** (integer): Depth in the team tree. Root teams have depth 0. (example: 1) - **path** (string): Materialized path for efficient ancestor/descendant queries. (example: "/eng/fe/web") - **is_member** (boolean): Whether the requesting user is a member of this team. - **managers** (array (string)): List of user IDs who are owners/managers of this team. ### Example Usage ```bash curl -X POST "https://app.nocodb.com/api/v3/meta/workspaces/{workspaceId}/teams" \ -H "Content-Type: application/json" \ -d '{ "title": "Design Team", "icon": "🎨", "icon_type": "EMOJI", "badge_color": "#FF5733", "members": [ "value" ], "parent_team_id": "tmd_abc123" }' ``` ``` -------------------------------- ### GET /api/v3/meta/bases/{baseId}/views/{viewId}/sorts Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of all sorts for a specific view. ```markdown ### Parameters - **baseId** (string, path, required): Unique identifier for the base. - **viewId** (string, path, required): Unique identifier for the view. ### Responses #### 200 - List of sorts retrieved successfully. **SortListResponse** - **list** (array (Sort)) (required) Array items: - **id** (string) (required): Unique identifier for the sort. - **field_id** (string (uuid)) (required): Identifier for the field being sorted. - **direction** (string (asc|desc)) (required): Sorting direction, either 'asc' (ascending) or 'desc' (descending). ("asc"|"desc") #### 404 - View not found. View not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{baseId}/views/{viewId}/sorts" ``` ``` -------------------------------- ### POST /api/v3/meta/tokens Source: https://nocodb.com/apis/v3/swagger-v3.json Create a new API token for the organization. **Note**: API Token APIs are available only with self-hosted **Enterprise** plans and cloud-hosted **Enterprise** plans. > **Beta**: These APIs are currently in beta and subject to change in future releases. ```markdown ### Request Body **Content-Type:** application/json - **title** (string) (required): Title / description for the API token (example: "Github Integration") ### Responses #### 200 - Created API token **ApiTokenWithTokenV3** - **id** (integer) (required): Token ID (example: 5) - **title** (string) (required): Token title / description (example: "Github Integration") - **created_at** (string (date-time)) (required): Token creation timestamp (example: "2025-12-30 15:17:24+00:00") - **updated_at** (string (date-time)) (required): Token last update timestamp (example: "2025-12-30 15:17:24+00:00") - **token** (string) (required): The actual API token value (only returned on creation) (example: "wxAFzFO2wwOf9ozVRjragBJ7KPWMaW2OGpklGqHh") #### 400 - response #### 401 - response #### 403 - response #### 500 - response ### Example Usage ```bash curl -X POST "https://app.nocodb.com/api/v3/meta/tokens" \ -H "Content-Type: application/json" \ -d '{ "title": "Github Integration" }' ``` ``` -------------------------------- ### GET /api/v3/meta/bases/{baseId} Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve meta details of a specific base using its unique identifier. ```markdown ### Parameters - **baseId** (string, path, required): Unique identifier of the base. ### Responses #### 200 - Base meta was retrieved. **Base** - **id** (string) (required): Unique identifier for the base. - **title** (string) (required): Title of the base. - **meta** (object) (required) - **icon_color** (string): Specifies the color of the base icon using a hexadecimal color code (e.g., `#36BFFF`) - **created_at** (string (date-time)) (required): Timestamp of when the base was created. - **updated_at** (string (date-time)) (required): Timestamp of when the base was last updated. - **workspace_id** (string) (required): Unique identifier for the workspace to which this base belongs to. - **sources** (array (object)): List of data sources associated with this base. This information will be included only if one or more external data sources are associated with the base. Array items: - **id** (string) (required): Unique identifier for the data source. - **title** (string) (required): Title of the data source. - **type** (string) (required): Type of the data source (e.g., pg, mysql). - **is_schema_readonly** (boolean) (required): Indicates if the schema in this data source is read-only. - **is_data_readonly** (boolean) (required): Indicates if the data (records) in this data source is read-only. - **integration_id** (string) (required): Integration ID for the data source. #### 404 - Base not found. Base not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{baseId}" ``` ``` -------------------------------- ### POST /api/v3/meta/workspaces Source: https://nocodb.com/apis/v3/swagger-v3.json Create a new workspace with the specified title and optional organization ID. **Note**: Workspace APIs are available only with self-hosted **Enterprise** plans and cloud-hosted **Enterprise** plans. ```markdown ### Request Body **Content-Type:** application/json - **title** (string) (required): Title of the workspace - **org_id** (string): Organization identifier (required for cloud, absent for on-prem EE) ### Responses #### 200 - Workspace created successfully. **WorkspaceV3** - **id** (string) (required): Unique identifier for the workspace - **title** (string) (required): Title of the workspace - **org_id** (string): Organization identifier (required for cloud, absent for on-prem EE) - **created_at** (string (date-time)) (required): Timestamp when the workspace was created - **updated_at** (string (date-time)) (required): Timestamp when the workspace was last updated #### 400 - Bad request. Bad request. #### 500 - The server encountered an unexpected error while processing the request. The server encountered an unexpected error while processing the request. ### Example Usage ```bash curl -X POST "https://app.nocodb.com/api/v3/meta/workspaces" \ -H "Content-Type: application/json" \ -d '{ "title": "string", "org_id": "string" }' ``` ``` -------------------------------- ### GET /api/v3/meta/bases/{baseId}/views/{viewId}/filters Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of all filters and groups for a specific view. ```markdown ### Parameters - **baseId** (string, path, required): Unique identifier for the base. - **viewId** (string, path, required): Unique identifier for the view. ### Responses #### 200 - List of filters and groups retrieved successfully. **FilterListResponse** - **list** (array (FilterGroup)) (required): List of filter groups. Initial set of filters are mapped to a default group with group-id set to **root**. Array items: - **id** (string) (required): Unique identifier for the group. - **parent_id** (string): Parent ID of this filter-group. - **group_operator** (string (AND|OR)) (required): Logical operator for combining filters in the group. ("AND"|"OR") - **filters** (array (union)) (required): Nested filters or filter groups. Array items: - **id** (string): Unique identifier for the filter. - **parent_id** (string): Parent ID of the filter, specifying this filters group association. Defaults to **root**. - **field_id** (string) (required): Field ID to which this filter applies. - **operator** (string) (required): Primary comparison operator (e.g., eq, gt, lt). - **sub_operator** (string,null): Secondary comparison operator (if applicable). - **value** (string,number,boolean,null): Value for comparison. #### 404 - View not found. View not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{baseId}/views/{viewId}/filters" ``` ``` -------------------------------- ### Schema: ScriptGetResponse Source: https://nocodb.com/apis/v3/swagger-v3.json Script with additional info ```markdown ## Schema: ScriptGetResponse Script with additional info **Type:** object - **id** (string) (required): Unique identifier for the script - **title** (string) (required): Title of the script. - **description** (string,null): Description of the script. - **script** (string) (required): Script content. - **config** (object): Configuration for the script. - **meta** (object): Metadata of the script. - **base_id** (string) (required): Unique identifier for the base - **workspace_id** (string) (required): Unique identifier for the workspace - **created_at** (string (date-time)) (required): Timestamp when the script was created - **updated_at** (string (date-time)) (required): Timestamp when the script was last updated ``` -------------------------------- ### GET /api/v3/meta/bases/{base_id}/workflows/{workflow_id} Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve the details of a specific workflow. **Note**: Workflow APIs are available only on self-hosted and cloud-hosted **Enterprise** plans. ```markdown ### Parameters - **base_id** (string, path, required): Unique identifier for the base. - **workflow_id** (string, path, required): Unique identifier for the workflow. ### Responses #### 200 - Workflow retrieved. **WorkflowGetResponse** - **id** (string) (required): Unique identifier for the workflow - **title** (string) (required): Title of the workflow - **description** (string,null): Description of the workflow - **base_id** (string) (required): Unique identifier for the base - **workspace_id** (string) (required): Unique identifier for the workspace - **enabled** (boolean): Whether the workflow is enabled - **nodes** (array (WorkflowNode)): Published workflow node definitions Array items: - **id** (string) (required): Unique identifier for this node within the workflow - **type** (string) (required): Node type identifier determining behavior and available configuration. Categories: trigger (start events), action (operations), flow (control flow). Examples: 'nocodb.trigger.after_insert', 'core.action.http', 'core.flow.if', 'core.flow.iterate', 'core.flow.delay', 'slack.send_message', 'ai.action.generate-text' - **position** (object) (required): Position of the node on the workflow canvas - **x** (number) (required): X coordinate - **y** (number) (required): Y coordinate - **data** (object) (required): Data payload of a workflow node containing its configuration and metadata - **title** (string) (required): Display title of the node - **description** (string): Description of the node - **config** (object) (required): Node-specific configuration. Structure varies by node type — e.g. table ID for record triggers, conditions array for If nodes, duration/unit for Delay nodes, array expression for Iterate nodes - **testResult** (object): Result of executing a single workflow node - **nodeId** (string) (required): ID of the node that was executed - **nodeTitle** (string) (required): Title of the node at execution time - **status** (string (pending|running|success|error|skipped)) (required): Execution status of the node ("pending"|"running"|"success"|"error"|"skipped") - **input** (object): Interpolated input data passed to the node - **output** (object): Output data produced by the node - **error** (string): Error message if the node failed - **startTime** (number) (required): Execution start time (Unix timestamp in milliseconds) - **endTime** (number): Execution end time (Unix timestamp in milliseconds) - **nextNode** (string): Explicit next node title for routing (used by conditional nodes) - **logs** (array (object)): Execution log entries from the node Array items: - **level** (string (info|warn|error)) (required): Log level ("info"|"warn"|"error") - **message** (string) (required): Log message - **ts** (number): Timestamp of the log entry - **data** (object): Additional structured log data - **metrics** (object): Execution metrics (e.g. execution time, condition count) - **inputVariables** (array (WorkflowVariableDefinition)): Input variable definitions at execution time Array items: - **key** (string) (required): Expression reference key (e.g. 'fields.Title', 'meta.id') - **name** (string) (required): Human-readable display name - **type** (string (string|number|integer|boolean|object|array|date|datetime)) (required): Data type of the variable ("string"|"number"|"integer"|"boolean"|"object"|"array"|"date"|"datetime") - **groupKey** (string (meta|fields|iteration)): Grouping category — 'meta' for system fields, 'fields' for user data, 'iteration' for loop variables ("meta"|"fields"|"iteration") - **isArray** (boolean): Whether this variable represents an array of values - **extra** (object): Additional metadata (entity references, icons, UI type hints) - **entity_id** (string): ID of the referenced entity (column, table, or view) - **entity** (string (column|table|view)): Type of the referenced entity ("column"|"table"|"view") - **icon** (string): Icon identifier for display - **uiType** (string): UI data type hint - **description** (string): Description of the variable - **port** (string): Port ID this variable belongs to (for multi-port nodes like If/Iterate) - **children** (array (WorkflowVariableDefinition)): Nested variable definitions for object/array types Array items: - **outputVariables** (array (WorkflowVariableDefinition)): Output variable definitions at execution time Array items: - **loopContext** (object): Loop context for iterate nodes — contains loop state, body port, and exit port - **state** (object): Serializable loop state - **items** (array (unknown)): Array of items being iterated - **currentIndex** (number): Current iteration index (0-based) - **totalItems** (number): Total number of items to iterate - **bodyPort** (string): Port ID for the loop body (e.g. 'body') - **exitPort** (string): Port ID for the loop exit (e.g. 'output') - **isStale** (boolean): Whether this test result is stale (node config changed since last test) - **inputVariables** (array (WorkflowVariableDefinition)): Input variable definitions for this node Array items: - **outputVariables** (array (WorkflowVariableDefinition)): Output variable definitions produced by this node Array items: - **targetPosition** (string (top|bottom|left|right)): Position of the incoming connection handle ("top"|"bottom"|"left"|"right") - **sourcePosition** (string (top|bottom|left|right)): Position of the outgoing connection handle ("top"|"bottom"|"left"|"right") - **edges** (array (WorkflowEdge)): Published connections between workflow nodes Array items: - **id** (string) (required): Unique identifier for this edge - **source** (string) (required): ID of the source node - **target** (string) (required): ID of the target node - **animated** (boolean): Whether the edge should be animated in the UI - **label** (string): Display label on the edge (e.g. 'True', 'False', 'For Each Item') - **sourcePortId** (string): Output port ID on the source node. Used for branching — e.g. 'true'/'false' for If nodes, 'body'/'output' for Iterate nodes - **targetPortId** (string): Input port ID on the target node - **draft** (object): Draft version of workflow nodes and edges with unpublished changes. Must be published via the publish endpoint for changes to take effect. - **nodes** (array (WorkflowNode)): Draft workflow node definitions Array items: - **edges** (array (WorkflowEdge)): Draft connections between nodes Array items: - **options** (object): Workflow options including execution configuration and display settings - **run_as** (object): Execution identity — determines the permissions context under which the workflow runs - **type** (string (service_account|role|user)) (required): Identity type. 'service_account' runs as a system user with creator role, 'role' runs with a specified role, 'user' runs as a specific user ("service_account"|"role"|"user") - **value** (string): Role name (when type='role') or user ID (when type='user'). Not required for 'service_account' - **icon** (string): Custom emoji icon for the workflow - **created_at** (string (date-time)) (required): Timestamp when the workflow was created - **updated_at** (string (date-time)) (required): Timestamp when the workflow was last updated - **created_by** (string): User ID of the creator - **updated_by** (string): User ID of the last updater ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{base_id}/workflows/{workflow_id}" ``` ``` -------------------------------- ### Schema: WidgetCreateReq Source: https://nocodb.com/apis/v3/swagger-v3.json Widget create request body ```markdown ## Schema: WidgetCreateReq Widget create request body **Type:** object - **title** (string) (required): Title of the widget. - **description** (string,null): Description of the widget. - **type** (string (chart|metric|text|iframe)) (required): Type of the widget. ("chart"|"metric"|"text"|"iframe") - **options** (object): Options for a metric widget (type=metric). - **data_source** (string (table|view|filter)): Data source type. ("table"|"view"|"filter") - **metric** (object): Metric aggregation configuration. - **type** (string (count|summary)) (required): 'count' counts all rows, 'summary' aggregates a column. ("count"|"summary") - **field_id** (string): Column to aggregate. Required when type is 'summary'. - **aggregation** (string (sum|avg|count|min|max)) (required): Aggregation function. ("sum"|"avg"|"count"|"min"|"max") - **appearance** (object) - **type** (string (default|filled|coloured)): Visual style variant. ("default"|"filled"|"coloured") - **theme** (string (gray|red|green|yellow|pink|blue|orange|maroon|purple)): Color theme. ("gray"|"red"|"green"|"yellow"|"pink"|"blue"|"orange"|"maroon"|"purple") - **position** (object): Position and size of the widget on the dashboard grid. - **x** (number): Column position of the widget on the dashboard grid (0-indexed, left to right). e.g. 0 means the first column, 6 means starting at the 7th column. - **y** (number): Row position of the widget on the dashboard grid (0-indexed, top to bottom). e.g. 0 means the first row, 4 means starting at the 5th row. - **w** (number): Width of the widget in grid columns. e.g. 6 means the widget spans 6 columns (half of a 12-column grid). - **h** (number): Height of the widget in grid rows. e.g. 4 means the widget spans 4 rows tall. - **table_id** (string,null): Unique identifier for the associated table. - **view_id** (string,null): Unique identifier for the associated view. ``` -------------------------------- ### GET /api/v3/meta/bases/{base_id}/dashboards Source: https://nocodb.com/apis/v3/swagger-v3.json Retrieve a list of dashboards in the specified base. **Note**: Dashboard APIs are available only on self-hosted and cloud-hosted **Enterprise** plans. ```markdown ### Parameters - **base_id** (string, path, required): Unique identifier for the base. ### Responses #### 200 - List of dashboards retrieved. **DashboardList** - **list** (array (DashboardListItem)) (required) Array items: - **id** (string) (required): Unique identifier for the dashboard. - **title** (string) (required): Title of the dashboard. - **description** (string,null): Description of the dashboard. - **base_id** (string) (required): Unique identifier for the base. - **workspace_id** (string) (required): Unique identifier for the workspace. - **created_at** (string (date-time)) (required): Timestamp when the dashboard was created. - **updated_at** (string (date-time)) (required): Timestamp when the dashboard was last updated. - **created_by** (string): User ID of the dashboard creator. #### 404 - Base not found. Base not found. #### 500 - Server error. Server error. ### Example Usage ```bash curl -X GET "https://app.nocodb.com/api/v3/meta/bases/{base_id}/dashboards" ``` ``` -------------------------------- ### Schema: ViewOptionsGallery Source: https://nocodb.com/apis/v3/swagger-v3.json Schema definition for ViewOptionsGallery ```markdown ## Schema: ViewOptionsGallery Schema definition for ViewOptionsGallery **Type:** object - **cover_field_id** (string): Attachment field ID to be used as cover image in gallery view. Is optional, if not provided, the first attachment field will be used. ``` -------------------------------- ### Schema: WorkflowOptions Source: https://nocodb.com/apis/v3/swagger-v3.json Workflow options including execution configuration and display settings ```markdown ## Schema: WorkflowOptions Workflow options including execution configuration and display settings **Type:** object - **run_as** (object): Execution identity — determines the permissions context under which the workflow runs - **type** (string (service_account|role|user)) (required): Identity type. 'service_account' runs as a system user with creator role, 'role' runs with a specified role, 'user' runs as a specific user ("service_account"|"role"|"user") - **value** (string): Role name (when type='role') or user ID (when type='user'). Not required for 'service_account' - **icon** (string): Custom emoji icon for the workflow ```