> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.datagol.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Row Data By ID

> ## 1️⃣ Overview

**Purpose:**

Retrieves a single row's complete data from a specified table within a workspace using its unique row ID.

This endpoint returns:

- All column values for the row
    
- AI-generated values (if applicable)
    
- Formula-calculated values
    
- System fields (if configured to return them)
    

---

## 2️⃣ Endpoint

```
GET /noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId}

 ```

---

## 3️⃣ Path Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| workspaceId | UUID | ✅ Yes | Identifier of the workspace |
| workbookId | UUID | ✅ Yes | Identifier of the table |
| rowId | string / number | ✅ Yes | Unique identifier of the row |

---

## 4️⃣ Authentication

Requires **Bearer JWT Token**

```
Authorization: Bearer <token>

 ```

---

## 5️⃣ Required Permissions

User must have:

- Workspace access
    
- Table view permission
    
- Row read permission
    

If table contains:

- AI columns → permission to view generated content required
    
- Restricted columns → values may be masked or omitted
    

---

## 6️⃣ Request Headers

| Header | Required |
| --- | --- |
| Authorization | ✅ Yes |
| Content-Type: application/json | Optional |

---

## 7️⃣ Request Example

```
curl -X GET https://be.datagol.ai/noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId} \
-H "Authorization: Bearer <token>"

 ```

---

## 8️⃣ Successful Response

### Example Response

```
{  "id": 1,  "values": {    "name": "dega",    "status": "Active",    "ai_summary": "Generated summary text",    "created_at": "2026-02-20T10:00:00Z"  },  "createdAt": "2026-02-20T10:00:00Z",  "updatedAt": "2026-02-26T12:45:00Z"}

 ```

---

## 9️⃣ Response Fields

| Field | Description |
| --- | --- |
| id | Row identifier |
| values | Key-value map of column names and values |
| createdAt | Row creation timestamp |
| updatedAt | Last modification timestamp |

---

# 🔄 Behavior

When this endpoint is called:

1. Validate workspace access
    
2. Validate table existence
    
3. Validate row existence
    
4. Validate user read permissions
    
5. Retrieve row data
    
6. Include:
    
    - Standard column values
        
    - AI-generated values
        
    - Formula results
        
7. Return structured JSON response
    

---

# 🤖 AI Column Handling

If the table contains AI-enabled columns:

- Returns last generated value
    
- Does not trigger regeneration
    
- If generation is asynchronous and pending:
    
    - May return null
        
    - Or may return processing status (implementation-dependent)
        

---

# 📊 Formula Column Handling

If a column is a formula:

- Returned value is the computed result
    
- Manual override is not applicable
    

---

# 📌 Behavior Summary

This endpoint retrieves complete data for a specific row by ID within a workspace table. It supports standard column retrieval, AI-generated values, formula-computed values, and permission-based visibility.



## OpenAPI

````yaml /openapi/openapi.yaml get /noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId}
openapi: 3.0.0
info:
  title: DataGOL APIs
  version: 1.0.0
  description: ''
servers:
  - url: https://be.datagol.ai
  - url: https://be.datagol.ai
  - url: https://kg.datagol.ai
  - url: https://ai.datagol.ai
security: []
tags:
  - name: Links & Joins
    description: >
      ## 🔗 Links & Joins


      LINK and LOOKUP are special workbook column types that enable relational
      data modeling across tables.


      | Column Type | Purpose |

      |---|---|

      | `LINK` | Defines a relationship between two tables |

      | `LOOKUP` | Projects columns from an associated table via a link |


      Both are configured through `ColumnDTO.colOptions`. A table can have
      multiple link columns, and each link can have multiple lookup columns.


      ---


      ## 📐 UI Data Types


      - **LINK** — Special column used to represent inter-table relations

      - **LOOKUP** — Special column used to project associated table fields via
      a link


      ---


      ## 🔗 LINK Semantics


      A LINK column stores metadata for:

      - `tableId` — Current table

      - `associatedTableId` — Associated (linked) table

      - `relationType` — Type of relationship

      - `linkColumnId` — Link column identifier


      **Supported relation patterns:**


      | Pattern | Description |

      |---|---|

      | `ONE_TO_ONE` | Each record in the source maps to one record in the
      destination |

      | `ONE_TO_MANY` | One source record maps to many destination records |

      | `MANY_TO_MANY` | Many source records map to many destination records |


      ---


      ## 🔍 LOOKUP Semantics


      - A LOOKUP column is tightly coupled with a specific LINK column

      - References a link using `linkColumnId`

      - Represents a selected column from the associated table

      - Multiple lookup columns can be defined for the same link


      ---


      ## 🗂️ Metadata in `ColumnDTO.colOptions`


      Use `colOptions` to persist link/lookup metadata.


      | Field | Description |

      |---|---|

      | `columnId` | Current column ID |

      | `tableId` | Current table ID |

      | `associatedTableId` | Associated table ID |

      | `linkColumnId` | Link column ID — used by LOOKUP; references the LINK
      column's `columnId` |

      | `relationType` | Relation semantics for LINK |


      ---


      ## 🔄 Manual Linking Record Flow


      To create manual record-level links:


      1. Fetch associated table schema/data

      2. User selects associated record(s) to link

      3. Send linking payload with:
          - `sourceRecordId` — PK of the current table row
          - `destinationRecordId` — PK of the associated table row
          - `linkColumnId` — LINK column identifier
      4. Backend resolves link metadata from `linkColumnId` (relation type,
      associated table, direction/constraints)

      5. Backend applies relation rules and stores the link relation


      ---


      ## 📋 Record Linking Contract


      | Field | Description |

      |---|---|

      | `sourceRecordId` | PK of the current table row |

      | `destinationRecordId` | PK of the associated table row |

      | `linkColumnId` | LINK column identifier |

      | `tableId` | Current table ID |


      > Backend derives all remaining relation metadata from the link
      configuration.


      ---


      ## ⚠️ Important Notes


      > - LINK and LOOKUP are **column-level constructs** first; record linking
      is a data-level operation built on top

      > - LOOKUP behavior depends on LINK existence and metadata integrity

      > - With multiple links to the same associated table, each LOOKUP must
      bind to the correct `linkColumnId`

      > - Always treat the associated row ID as the associated table PK for
      linking UI selection
paths:
  /noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId}:
    parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
        example: '{{workspaceId}}'
      - name: workbookId
        in: path
        required: true
        schema:
          type: string
        example: '{{workbookId}}'
      - name: rowId
        in: path
        required: true
        schema:
          type: string
        example: '{{rowId}}'
    get:
      tags:
        - WorkBook
      summary: Get Row Data By ID
      description: >-
        ## 1️⃣ Overview


        **Purpose:**


        Retrieves a single row's complete data from a specified table within a
        workspace using its unique row ID.


        This endpoint returns:


        - All column values for the row
            
        - AI-generated values (if applicable)
            
        - Formula-calculated values
            
        - System fields (if configured to return them)
            

        ---


        ## 2️⃣ Endpoint


        ```

        GET
        /noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId}

         ```

        ---


        ## 3️⃣ Path Parameters


        | Parameter | Type | Required | Description |

        | --- | --- | --- | --- |

        | workspaceId | UUID | ✅ Yes | Identifier of the workspace |

        | workbookId | UUID | ✅ Yes | Identifier of the table |

        | rowId | string / number | ✅ Yes | Unique identifier of the row |


        ---


        ## 4️⃣ Authentication


        Requires **Bearer JWT Token**


        ```

        Authorization: Bearer <token>

         ```

        ---


        ## 5️⃣ Required Permissions


        User must have:


        - Workspace access
            
        - Table view permission
            
        - Row read permission
            

        If table contains:


        - AI columns → permission to view generated content required
            
        - Restricted columns → values may be masked or omitted
            

        ---


        ## 6️⃣ Request Headers


        | Header | Required |

        | --- | --- |

        | Authorization | ✅ Yes |

        | Content-Type: application/json | Optional |


        ---


        ## 7️⃣ Request Example


        ```

        curl -X GET
        https://be.datagol.ai/noCo/api/v2/workspaces/{workspaceId}/tables/{workbookId}/rows/{rowId}
        \

        -H "Authorization: Bearer <token>"

         ```

        ---


        ## 8️⃣ Successful Response


        ### Example Response


        ```

        {  "id": 1,  "values": {    "name": "dega",    "status": "Active",   
        "ai_summary": "Generated summary text",    "created_at":
        "2026-02-20T10:00:00Z"  },  "createdAt": "2026-02-20T10:00:00Z", 
        "updatedAt": "2026-02-26T12:45:00Z"}

         ```

        ---


        ## 9️⃣ Response Fields


        | Field | Description |

        | --- | --- |

        | id | Row identifier |

        | values | Key-value map of column names and values |

        | createdAt | Row creation timestamp |

        | updatedAt | Last modification timestamp |


        ---


        # 🔄 Behavior


        When this endpoint is called:


        1. Validate workspace access
            
        2. Validate table existence
            
        3. Validate row existence
            
        4. Validate user read permissions
            
        5. Retrieve row data
            
        6. Include:
            
            - Standard column values
                
            - AI-generated values
                
            - Formula results
                
        7. Return structured JSON response
            

        ---


        # 🤖 AI Column Handling


        If the table contains AI-enabled columns:


        - Returns last generated value
            
        - Does not trigger regeneration
            
        - If generation is asynchronous and pending:
            
            - May return null
                
            - Or may return processing status (implementation-dependent)
                

        ---


        # 📊 Formula Column Handling


        If a column is a formula:


        - Returned value is the computed result
            
        - Manual override is not applicable
            

        ---


        # 📌 Behavior Summary


        This endpoint retrieves complete data for a specific row by ID within a
        workspace table. It supports standard column retrieval, AI-generated
        values, formula-computed values, and permission-based visibility.
      responses:
        '200':
          description: Get Row Data By ID
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        This API uses OAuth 2.0 with the authorization code grant flow.

````