> ## 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.

# Update Extraction

> ## 1️⃣ Overview

**Purpose:**  
Updates an existing extraction configuration.

Supports:

- STANDARD or ADVANCED extraction modes
    
- Column, file, or folder-based extraction
    
- Schema-driven advanced extraction
    

---

## 2️⃣ Endpoint

``` bash
PUT /noCo/api/v2/workspaces/{workspaceId}/extraction/{extractionId}

 ```

---

## 3️⃣ Path Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| workspaceId | UUID | ✅ Yes | Workspace identifier |
| extractionId | string | ✅ Yes | Extraction configuration identifier |

---

## 4️⃣ Authentication

Requires authentication using:

``` bash
Authorization: Bearer <token>

 ```

---

## 5️⃣ Request Headers

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

---

## 6️⃣ Request Body Schema

``` json
{
  "title": "string",
  "extractionMode": "string",
  "elementType": "string",
  "elementId": "string",
  "inputTableId": "string",
  "outputConfiguration": {},
  "columnConfiguration": [],
  "primaryKeyColumnId": [],
  "storeExtractedData": true,
  "scheduleType": "string",
  "schedule": {},
  "advancedSchema": {}
}

 ```

---

## 9️⃣ Behavior Summary

Updates an extraction configuration within a workspace.



## OpenAPI

````yaml /openapi/openapi.yaml put /noCo/api/v2/workspaces/{workspaceId}/extraction/{extraction_id}
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}/extraction/{extraction_id}:
    parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
        example: '{{workspaceId}}'
      - name: extraction_id
        in: path
        required: true
        schema:
          type: string
        example: '{{extractionId}}'
    put:
      tags:
        - AI Extraction
      summary: Update Extraction
      description: |-
        ## 1️⃣ Overview

        **Purpose:**  
        Updates an existing extraction configuration.

        Supports:

        - STANDARD or ADVANCED extraction modes
            
        - Column, file, or folder-based extraction
            
        - Schema-driven advanced extraction
            

        ---

        ## 2️⃣ Endpoint

        ``` bash
        PUT /noCo/api/v2/workspaces/{workspaceId}/extraction/{extractionId}

         ```

        ---

        ## 3️⃣ Path Parameters

        | Parameter | Type | Required | Description |
        | --- | --- | --- | --- |
        | workspaceId | UUID | ✅ Yes | Workspace identifier |
        | extractionId | string | ✅ Yes | Extraction configuration identifier |

        ---

        ## 4️⃣ Authentication

        Requires authentication using:

        ``` bash
        Authorization: Bearer <token>

         ```

        ---

        ## 5️⃣ Request Headers

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

        ---

        ## 6️⃣ Request Body Schema

        ``` json
        {
          "title": "string",
          "extractionMode": "string",
          "elementType": "string",
          "elementId": "string",
          "inputTableId": "string",
          "outputConfiguration": {},
          "columnConfiguration": [],
          "primaryKeyColumnId": [],
          "storeExtractedData": true,
          "scheduleType": "string",
          "schedule": {},
          "advancedSchema": {}
        }

         ```

        ---

        ## 9️⃣ Behavior Summary

        Updates an extraction configuration within a workspace.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                title:
                  type: string
                extractionMode:
                  type: string
                elementType:
                  type: string
                elementId:
                  type: string
                inputTableId:
                  type: string
                storeExtractedData:
                  type: boolean
                scheduleType:
                  type: string
                schedule:
                  type: object
                  properties:
                    cronExpression:
                      type: string
                outputConfiguration:
                  type: object
                  properties:
                    createNewWorkbook:
                      type: boolean
                    title:
                      type: string
                    tableId:
                      type: string
                primaryKeyColumnId:
                  type: string
                columnConfiguration:
                  type: array
                  items:
                    type: object
                    required:
                      - name
                      - description
                    properties:
                      name:
                        type: string
                      description:
                        type: string
                      uiMetadata:
                        type: object
                        properties:
                          title:
                            type: string
                      id:
                        type: string
                      uiDataType:
                        type: string
                advancedSchema:
                  type: object
                  description: User-defined schema for advanced extraction
                  additionalProperties: true
            example:
              id: 6422272
              title: extracted transcripts config
              extractionMode: ADVANCED
              elementType: COLUMN
              elementId: 767e6bc2-b4db-4c35-9733-ff4a638772b1
              storeExtractedData: true
              scheduleType: MANUAL
              schedule:
                cronExpression: ''
              outputConfiguration:
                createNewWorkbook: false
                title: extracted transcripts
                tableId: 5722991e-c826-460b-902f-ccf241f4bc80
              inputTableId: 5a408388-4c83-4007-8921-f5b7c72509f2
              primaryKeyColumnId:
                - acd7f6ee-3c93-4f13-a854-d476aa8f8cbd
              columnConfiguration:
                - name: title
                  description: Transcript title
                  uiMetadata:
                    title: Title
                  id: d86ed28b-8642-430e-8070-3512419aee3e
                  uiDataType: SINGLE_LINE_TEXT
                - name: segments
                  description: Transcript segments
                  uiMetadata:
                    title: Segments
                  id: d6882086-f833-4519-a6b4-0f1c7c620ff9
                  uiDataType: JSON
              advancedSchema:
                properties:
                  title:
                    type: string
                  segments:
                    type: array
      responses:
        '200':
          description: Updated Extraction
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        This API uses OAuth 2.0 with the authorization code grant flow.

````